Bash导出为脚本;下一个脚本?

时间:2018-09-19 20:11:31

标签: bash export

我想在脚本中设置一个变量,并将其放在脚本外以用于下一个命令。

这就是我所拥有的:

#!/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:

1 个答案:

答案 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 '***'