这就是我所拥有的:
#!/bin/bash myExports="TEST='Value 1';export TEST;"; echo Before eval: $TEST echo '***' eval $myExports echo After eval: $TEST echo '***'
我是这么称呼它的:
./env1.sh ;echo Next command:$TEST
这是输出:
Before eval: *** After eval: Value 1 *** Next command:
source 你的剧本就像。。。
source
#source ./env1.sh; echo Next command:$TEST . ./env1.sh; echo Next command:$TEST
正如@Jonathon在使用 . 代替 来源
.
来源
事实上,如果您使用这个方法,您甚至不需要导出变量。
做这件事的时候要小心你的变量名。即使这是你想要的,你也在污染你的环境。
eval
#!/bin/bash #myExports="TEST='Value 1';export TEST;"; echo Before eval: $TEST echo '***' TEST='Value 1'; export TEST #eval $myExports echo After eval: $TEST echo '***'