![在shell脚本之间共享变量](https://linux22.com/image/865063/%E5%9C%A8shell%E8%84%9A%E6%9C%AC%E4%B9%8B%E9%97%B4%E5%85%B1%E4%BA%AB%E5%8F%98%E9%87%8F.png)
我有一个 shell 脚本(我们称之为 parent.sh),它调用另一个 shell 脚本(child.sh),并向其传递一个参数。
子脚本执行一些工作并在名为的变量中设置一个值create_sql
。我想create_sql
从调用它的父脚本访问此变量。
我正在从父脚本中调用子脚本,如下所示:
./child.sh "$dictionary"
紧接着我得到了如下的一行:
echo "The resulting create script is: "$create_sql
但是,没有输出任何值,然而,在子脚本中我正在做同样的事情,并且变量肯定被设置了。
我怎样才能让它工作以便我可以读取子脚本创建的变量?
答案1
如果child.sh
在标准输出$create_sql
值上打印,则可以在父脚本中获取它:
create_sql=`./child.sh "$dictionary"`
在此行之后,您应该用测试child.sh
退出值$?
,如果它返回,则0
您可以使用$create_sql
变量。
当脚本像一个函数时,这种方法很有用,否则最好遵循 muru 的建议回答。