我发布了一个小时前的问题,但没有得到任何答复,我现在尝试了一些不同的方法,我将通过包含更少的代码来简化我的问题,但是如果您想要看看我正在使用的其他代码,请检查我的最后一个问题Parallel Processes in bash bitcoin monitor that records to sql leaking data?。我无法让这些变量成功传输到子shell ./test。感谢您的帮助。阵列的IP端口名称和地址是在for循环之外定义的,我可以放入一个echo命令来验证它们是否通过。如何将变量传递给bash中的子进程
for ((c=0; c<=$id-1; c++))
do
UnitIP=${IP[$c]}
UnitPort=${Port[$c]}
UnitName=${Name[$c]}
UnitActive=${Active[$c]}
sh -c ". ./test && echo \$UnitIP \$UnitPort \$UnitName \$UnitActive"
done
标题应措词,一个子进程而不是一个子shell。后者不需要出口。 – Scrutinizer
最简单的,自包含的测试用例就是'var = value; sh -c'echo $ var'' –
@ that-other-guy:这是一个恰好是shell而不是subhell的子进程。这是一个子shell:'var = value; (echo“$ var”)' – Scrutinizer