将命令的结果分配给变量,但不要等待命令完成

将命令的结果分配给变量,但不要等待命令完成

我正在尝试并行化一个 bash 脚本,如下所示:

var01=$(ssh $USER@host01 'bash -s' < ./node.sh) &
var02=$(ssh $USER@host02 'bash -s' < ./node.sh) &
var03=$(ssh $USER@host03 'bash -s' < ./node.sh) &
wait
echo $var01
echo $var02
echo $var03

也许您看到我在这里尝试做的事情:并行运行前三个命令,然后等待所有命令完成,最后以有序的方式打印输出。但它似乎不是那样工作的。该脚本打印三个空行,而如果没有&符号,我会得到正确的输出。只是需要更长的时间,因为命令是串行执行的。

相关内容