我有两个shell脚本。在其中的一个,我有:环境变量不更新
export FOO="yes"
sh another.sh &
# ops ...
export FOO=0
在another.sh
我:
while [[ $FOO -eq "yes" ]]
do
# something ...
done
的事情是,当第一个脚本完成后,设置FOO=0
的FOO
在another.sh
值继续导"yes"
。我想知道如何获得更新的FOO
,这样我就可以知道第一个脚本(调用者)何时完成。
一般而言,您*不能*将环境变量从一个正在运行的shell导出到另一个运行的shell。建议:对于两个独立的shell脚本,请使用命名管道:http://www.linuxjournal.com/content/using-named-pipes-fifos-bash。在这种特殊情况下,你可以通过用'来代替父变量。 another.sh&'(“。”而不是“sh”)。 – paulsm4
变量值在脚本启动时设置,然后不能从外部更改。你需要一些其他的共享数据的外部方法,比如某个文件。 –