首页 > 代码库 > linux相关(3)
linux相关(3)
1. shell环境变量
能够存在于本shell进程及其子shell进程的变量。变量可以从父shell进程传递给子shell进程,而不能反过来,因此环境变量在子shell进程中无论如何修改都不会影响到父shell进程。
环境变量包含 effective id(euid), variable, working dir等等。可以使用export将本地变量转变为环境变量。
注意环境变量/本地变量是针对shell进程来说的,linux中每开启一个终端或执行一个脚本就开启一个shell进程,而在终端中/脚本中执行shell命令时候,新fork的进程并不是shell进程,只是普通进程。
2. 直接执行/source/exec 脚本区别
(1)直接执行脚本(比如./test.sh)
先产生一个sub-shell的子进程,然后sub-shell再去产生命令行的子进程;而直接在linux终端下执行shell命令,则不需要产生sub-shell子进程,而是直接在当前shell进程中执行命令(产生命令的子进程执行)。
(2)source
source ./test.sh (或者 . ./test.sh) 这种方式,不产生sub-shell,而是直接在当前的shell进程中执行脚本中的命令。
(3)exec
exec也不产生sub-shell进程,而是直接在当前的shell进程中执行脚本中的命令,而且脚本执行后原进程就结束了。exec 使用新的程序替换了原来进程中的程序内容,相当于原来进程在(exec 新程序)之后的部分都清空了。
linux相关(3)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。