1

大约一个小时前我发布了一个问题,但没有得到任何回应,我现在正在尝试不同的东西,我将通过包含更少的代码来简化我的问题,但是如果你想查看我正在使用的其余代码,请检查我的最后一个问题bash 比特币监视器中记录到 sql 泄漏数据的并行进程?. 我无法让这些变量成功传输到子shell ./test。感谢您的帮助。阵列的 IP 端口名称和地址是在 for 循环之外定义的,我可以输入 echo 命令来验证它们是否通过。

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
4

1 回答 1

2

您可以将它们导出到父 shell 中:

export UnitIP=${IP[$c]}
export UnitPort=${Port[$c]}
export UnitName=${Name[$c]}
export UnitActive=${Active[$c]}
./test.sh

所有变量都将在test.sh(您不需要来源)中可用

于 2014-03-04T23:26:35.753 回答