在shell脚本之间共享变量

在shell脚本之间共享变量

我有一个 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 的建议回答

相关内容