我想在脚本中设置一个变量,并将其放在脚本外以用于下一个命令。
这就是我所拥有的:
#!/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:
答案 0 :(得分:1)
您可以source
像...那样的脚本
#source ./env1.sh; echo Next command:$TEST
. ./env1.sh; echo Next command:$TEST
@Jonathon在评论中指出,使用.
代替source
更方便。
实际上,如果使用此方法,则甚至不需要导出变量。
在执行此操作时,请小心使用变量名。即使这是您想要的,但仍在污染环境。
我不确定脚本的用途是什么,但是如果可能的话,我倾向于避免使用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 '***'