サブシェルが機能しない

サブシェルが機能しない

複数のコマンドを並列に実行したいのですが、以下のコードスニペットが機能しない理由はわかりません。

#!/bin/bash
( ping 8.8.8.8 )
( ping 192.168.0.1 )

2番目のpingコマンドを完全に無視します。なぜこれが起こるのですか?

編集:わかりました、今すぐ実行を介して並列に実行できることがわかりました&

ping 8.8.8.8 & ping 192.168.0.1

しかし、上記のコードスニペットが機能しないのはなぜですか?

答え1

デフォルトでは、サブシェルは分岐しません。また&、最初のサブシェルが完了するのを待たずに2番目のサブシェルを実行するには、バックグラウンドで送信を使用する必要があります。

例えば

ping 8.8.8.8 & ping 192.168.0.1

関連情報