【发布时间】:2011-03-14 12:38:38
【问题描述】:
我有两个想要从 C 程序调用的 shell 脚本。我希望在第一个脚本中设置的 shell 变量在第二个脚本中可见。这是它的样子:
a.sh:
var=blah
<save vars>
b.sh:
<restore vars>
echo $var
到目前为止,我想出的最好的方法是使用“set > /tmp/vars”来保存变量并使用“eval $(cat /tmp/vars)”来恢复它们。当它试图恢复只读变量时,“eval”会窒息,所以我需要把它们找出来。这些变量的列表可通过“declare -r”获得。但是有一些变量没有出现在这个列表中,但仍然不能在 eval 中设置,例如BASH_ARGC。所以我也需要 grep 出来。
此时,我的解决方案感觉非常脆弱且容易出错,而且我不确定它的便携性如何。有没有更好的方法来做到这一点?
【问题讨论】:
标签: c bash shell environment-variables