bash – 脚本执行后导出的变量不会保留
发布时间:2020-12-15 18:36:11 所属栏目:安全 来源:网络整理
导读:我面临着一个奇怪的问题. 我有一个使用solaris 11的虚拟机,并尝试编写一些bash脚本. 如果,在shell上,我输入: export TEST=aaa 然后运行: set 我正确地看到一个名为TEST的新环境变量,其值为aaa. 但是,如果我在脚本中基本上做同样的事情.当脚本终止时,我没有
我面临着一个奇怪的问题.
我有一个使用solaris 11的虚拟机,并尝试编写一些bash脚本. 如果,在shell上,我输入: export TEST=aaa 然后运行: set 我正确地看到一个名为TEST的新环境变量,其值为aaa. #!/usr/bin/bash echo 1: $TEST #variable not defined yet,expect to print only 1: echo 2: $USER TEST=sss echo 3: $TEST export TEST echo 4: $TEST 它打印: 1: 2: daniele 3: sss 4: sss 并且在执行之后,未在shell中设置TEST.
export – 使变量可用于子进程,但不能用于父进程.
source – 在shell中运行脚本而不创建子进程 对于exalmpe,可以通过写入文件来实现持久变量 #!/usr/bin/bash echo 1: $TEST #variable not defined yet,expect to print only 1: CONFIGFILE=~/test-persistent.vars if [ -r ${CONFIGFILE} ]; then # Read the configfile if it's existing and readable source ${CONFIGFILE} fi echo 2: $TEST echo 3: $USER TEST=sss echo 4: $TEST echo TEST="$TEST"> ${CONFIGFILE} echo 5: $TEST (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |