导出变量?

时间:2014-10-11 15:52:50

标签: bash shell global

我有两个脚本。一个脚本创建了我需要的变量,另一个脚本使用了第一个创建的变量(我知道这可能不是最有效的编程方式,但让我们假设它是。)

在脚本1中,它看起来像:

export MYVAR=/path/blah/blah

在脚本2中,它看起来像:

bash script_1.sh

但由于某种原因,在脚本2中,MYVAR是空的。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

而不是执行script_1.sh,script_2.sh应该来源:

. script_1.sh

这将导致在script_2中进行变量赋值。

答案 1 :(得分:0)

问题是script 1script 2尝试使用导出的环境之前退出,或者您未在script 2内调用script 1。请记住,在bash中,脚本可能影响父环境,只有自己的环境。为了做你想做的事,script 1必须致电script 2。例如:

<强> script1.sh:

#!/bin/bash

export MYVAR=/path/to/blah
bash script2.sh

<强> script2.sh:

#!/bin/bash

printf "\nMYVAR: %s\n\n" "$MYVAR"

<强>输出:

$ bash script1.sh

MYVAR: /path/to/blah