shell之export难点解析
shell中的export的作用是将脚本中的变量导出,使得变量在此脚本之外也能起作用。
export的使用中有一些难点和容易理解错误的地方,在此特别记录下来。
生效时机
在脚本A中export变量后要注意的是导出的变量并不会在脚本A执行完后在执行脚本A的shell中生效,而是会在脚本A中启动的其他的脚本后在其他的脚本中生效。
注意:脚本A里export了一个变量V,那么只有在脚本A中启动的脚本B中,变量V才是存在的。
修改生效范围
脚本A中export的变量在启动其他脚本的时候会复制一份传入其他脚本。其他脚本中对此变量的修改并不会在离开脚本后生效。
注意:在脚本A中定义了一个变量V赋值为1,export了变量V,在脚本A中启动脚本B,在脚本B中变量V的值就是1,如果在脚本B中修改了V的值为2,那么脚本B结束后,脚本A中的V的值依然是1。
脚本A中export的变量在启动其他脚本的时候会复制一份传入其他脚本。传入的值是调用其他脚本的时的值。并不是export时的值。
注意:在脚本A中定义了一个变量V赋值为1,export了变量V,然后修改V为2,在脚本A中启动脚本B,在脚本B中变量V的值就是2。