![跨子 shell 脚本共享变量](https://linux22.com/image/25557/%E8%B7%A8%E5%AD%90%20shell%20%E8%84%9A%E6%9C%AC%E5%85%B1%E4%BA%AB%E5%8F%98%E9%87%8F.png)
我有一个运行配置文件的主 shell,该配置文件包含一些变量,例如计数。当我调用主 shell 时,它会加载配置文件,然后调用另一个 shell 脚本。我希望内部 shell 脚本能够访问主 shell 脚本已加载的变量计数。我怎样才能做到这一点 ?我尝试导出,但仅对一级变量导入有帮助。
答案1
export
允许在进程中定义的变量在子进程中读取,但是如果在子进程中修改变量,则该变量在调用者进程中不会改变,因为每个进程都有自己的环境变量。也许解决方案可以是子 shell 写入输出,调用者 shell 读取输出。
count=$(subprocess)
答案2
不要将内部脚本称为单独的进程,而将它们称为包含的脚本。
. /path/to/inner_script
通过.
(dot) 内置函数读取的脚本(也可以source
在 bash 中使用该名称)在与调用者相同的 shell 环境中执行。特别是,它们共享变量。