export简明理解
export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。简单说,export可发布变量到后续程序中。
举例:声明两个变量,并打印出来。
v1="hello" v2="world" echo $v1 echo $v2
输出:
admin@DESKTOP-4N13UR2:~$ echo $v1 $v2
hello world
用export输出变量 v1,在进入一个bash,查看变量v1和v2
admin@DESKTOP-4N13UR2:~$ v1="hello" admin@DESKTOP-4N13UR2:~$ v2="world" admin@DESKTOP-4N13UR2:~$ export v1 admin@DESKTOP-4N13UR2:~$ bash admin@DESKTOP-4N13UR2:~$ echo $v1 $v2 hello
发现变量v2并没有被打印出来,因为在bash子程序中不知道由v2变量。
就好像公司总部下达子公司任命通知书后,你在下去到子公司才会有人认可你,如果子公司没有收到你的任命通知书,那没有人认可你是经理,export就好比那个下达通知书的动作。
同样在我们的执行脚本中,由于都是在bash子程序中运行的,所以如果用到系统变量,必须通过export给下达通知书。
如编写文件test.sh
v1="hello" v2="world" export v1 echo $v1 $v2
输出: hello
发现只有v1变量,因为我是用 bash test.sh 来执行脚本的,这时在bash子程序中运行的,而bash子程序只收到export发布的v1变量,故没有显示v2变量的值。