コマンドの結果を変数に割り当てますが、コマンドが完了するまで待たないでください。

コマンドの結果を変数に割り当てますが、コマンドが完了するまで待たないでください。

次のように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

おそらく私がここで何をしたいのか知っているでしょう。最初の3つのコマンドを並列に実行し、すべてのコマンドが完了するのを待ってから、最後に順番に出力を印刷します。しかし、そのようには動作しないようです。スクリプトは3つの空白行を印刷しますが、アンパサンドがないと正しい出力が得られます。コマンドが順次実行されるため、時間がかかります。

ベストアンサー1

おすすめ記事