我有两个脚本。一个脚本创建了我需要的变量,另一个脚本使用了第一个创建的变量(我知道这可能不是最有效的编程方式,但让我们假设它是。)
在脚本1中,它看起来像:
export MYVAR=/path/blah/blah
在脚本2中,它看起来像:
bash script_1.sh
但由于某种原因,在脚本2中,MYVAR是空的。有什么想法吗?
答案 0 :(得分:1)
而不是执行script_1.sh,script_2.sh应该来源:
. script_1.sh
这将导致在script_2中进行变量赋值。
答案 1 :(得分:0)
问题是script 1
在script 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