无法使用脚本

时间:2016-09-08 18:25:38

标签: bash environment-variables .bash-profile

所以我有一个脚本,我正在使用:

设置一个环境变量
echo 'export env_var=hello' >> ~/.profile
source ~/.profile

当脚本完成时,我通过执行以下操作检查是否存在此环境变量:

echo $env_var

这给了我“而不是”你好“。如果我在终端上运行source~ / .profile(在终端中直接输入,而不是从任何脚本调用),将正确设置环境变量。为什么我的脚本无法正确设置环境变量,我需要做什么呢?

1 个答案:

答案 0 :(得分:0)

env_var正在export - 编辑正确,但在子shell(及其子代)中正在执行脚本。

执行=脚本时,脚本在子shell上运行,子shell是调用shell的子代,因此在脚本完成后,导出的变量超出了调用shell的范围。

在调用shell中提供所有变量(和其他数据结构)的常见做法是source.)脚本,而不是执行它,你正在做的但是从脚本,而不是来自交互式会话。