例如,我有一个主shell程序main.sh
,还有一个子shell程序sub.sh
。我想将变量 var 传递给子 shell,但我不想使用命令行参数。示例代码如下:
#In main.sh
a=1
./sub.sh
#In sub.sh
echo $a
我想看输出:1
我知道这个问题很奇怪,但这个功能最适合我的需要。我无法获取 sub.sh
,因为在实际程序中我有很多变量要传入...谢谢!
编辑:如果我在后台运行 sub.sh
需要 10 个小时,我想运行另一个 sub.sh
怎么办> 在另一个变量 b
的前台?
最佳答案
你只是有一个额外的换行符:
#In main.sh
a=1 ./sub.sh
这实际上与 1_CR 的答案相同,但演示了将值传递给 sub.sh
的环境而不是修改 sub.sh
的当前环境的技术> 继承。
由于这是环境的每个进程修改,您可以根据需要重复。
a=1 ./sub.sh &
a=3 b=9 ./sub.sh &
sub.sh
的每个实例都看到了不同的 a
值,第二个实例也看到了 b
的值。
关于shell - 如何在没有命令行参数的情况下将参数传递给子 shell(通过执行,而不是源代码)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19599303/