gpt4 book ai didi

BASH - 如何从后台运行的脚本中获取变量

转载 作者:行者123 更新时间:2023-12-05 03:15:28 24 4
gpt4 key购买 nike

我有 2 个 bash 文件,文件 a.sh 和文件 b.sh。

文件a.sh的内容

# !/bin/bash
(/root/b.sh) & # <--- must be run in the background!!!
sleep 1
echo "--${VAR}--"

文件b.sh的内容

# !/bin/bash
VAR=100

运行脚本/root/a.sh 结果为:----

为什么不是结果:--100--

最佳答案

子进程(子 shell、后台脚本等)中环境变量的更改不会传播回父进程。换句话说,运行 a.sh 的 shell 进程有它自己的环境变量副本,运行 b.sh 的 shell 进程有它自己的完全独立的副本,当您在“b”shell 中更改 VAR 时,它不会更改“a”shell 中的任何内容。

要将值 100 返回到“a”shell,您必须执行一些操作,例如将它打印到标准输出并在 a.sh 中读取它,或者使用其他一些方法进程间通信。

关于BASH - 如何从后台运行的脚本中获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15696382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com