我有很多bash脚本可以处理名为WORKING_FILE的导出变量。
此变量在main.sh脚本中导出,该脚本是在shell中启动的第一个脚本,在执行期间它调用其他脚本(例如child.sh)。
实际上,child.sh将WORKING_FILE视为main.sh环境的副本,如果它尝试更改WORKING_FILE,则该值将在执行结束时丢失。
所以,问题是: child.sh如何修改WORKING_FILE的值并在不使用文件的情况下更改main.sh中的WORKING_FILE值?
感谢。 :)
答案 0 :(得分:2)
如果您导出变量并执行子项,那么您不能 - 该子项获取变量的副本,并且在父项中看不到任何更改。
但是,您可以源脚本
. ./child.sh
或
source child.sh
这将在同一个解释器中执行子脚本,并且此脚本对环境所做的任何更改都将在脚本中显示。