跨子 shell 脚本共享变量

跨子 shell 脚本共享变量

我有一个运行配置文件的主 shell,该配置文件包含一些变量,例如计数。当我调用主 shell 时,它会加载配置文件,然后调用另一个 shell 脚本。我希望内部 shell 脚本能够访问主 shell 脚本已加载的变量计数。我怎样才能做到这一点 ?我尝试导出,但仅对一级变量导入有帮助。

答案1

export允许在进程中定义的变量在子进程中读取,但是如果在子进程中修改变量,则该变量在调用者进程中不会改变,因为每个进程都有自己的环境变量。也许解决方案可以是子 shell 写入输出,调用者 shell 读取输出。

count=$(subprocess)

答案2

不要将内部脚本称为单独的进程,而将它们称为包含的脚本。

. /path/to/inner_script

通过.(dot) 内置函数读取的脚本(也可以source在 bash 中使用该名称)在与调用者相同的 shell 环境中执行。特别是,它们共享变量。

相关内容