[解決済み] bash で複数のサブプロセスが終了するのを待ち、いずれかのサブプロセスがコード !=0 で終了したときに終了コード !=0 を返すにはどうすればよいですか?
2022-03-15 14:32:36
質問
bash スクリプトで、そのスクリプトから生成された複数のサブプロセスが終了するのを待ち、終了コードを返すにはどうすればよいでしょうか。
!=0
サブプロセスのいずれかがコード
!=0
?
簡単なスクリプトです。
#!/bin/bash
for i in `seq 0 9`; do
doCalculations $i &
done
wait
上記のスクリプトは、生成された10個のサブプロセスすべてを待ちますが、常に終了ステータスを与えます。
0
(参照
help wait
). このスクリプトを修正して、生成されたサブプロセスの終了ステータスを検出し、終了コードを返すようにするには、どうすればよいでしょうか。
1
サブプロセスのいずれかがコード
!=0
?
サブプロセスのPIDを収集し、順番に待ち、終了ステータスを合計するよりも良い解決策はありますか?
どのように解決するのですか?
wait
は、(オプションで)
PID
を指定し、さらに
$!
を取得します。
PID
バックグラウンドで最後に起動したコマンドの
を格納するようにループを修正します。
PID
を配列に格納し、各サブプロセスを待ちながら再びループします。
PID
.
# run processes and store pids in array
for i in $n_procs; do
./procs[${i}] &
pids[${i}]=$!
done
# wait for all pids
for pid in ${pids[*]}; do
wait $pid
done
関連
-
[解決済み】 -bash: 予期しないトークン「改行」付近での構文エラー
-
[解決済み] bashスクリプトでタブ文字をエコーする
-
[解決済み] curl: 引数リストが長すぎる
-
[解決済み] systemd サービス 203/EXEC の失敗 (そのようなファイルやディレクトリがない) を修正する。
-
[解決済み] cmake execute_process COMMAND [重複]。
-
[解決済み] grepの出力に含まれる重複を削除する
-
解決策:bash: /root/.bashrc: パーミッションが拒否されました
-
[解決済み] 環境変数を表示/エコーするには?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Bash関数におけるreturnとexitの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ambiguous redirect」エラーが発生する
-
[解決済み】予期しないトークン 'fi' 付近の構文エラー
-
[解決済み] MacOSのbashターミナルでexport PS1="\u[\033[m]@[\033[32m]\h:\[\033[33;1m]\w[\033[m]\$" は何を意味していますか?
-
[解決済み] bashスクリプトでタブ文字をエコーする
-
[解決済み] Docker ubuntu イメージ - bash: man: コマンドが見つかりません。
-
[解決済み] Homebrewは最新ですが、`could not link` + `delete path` のエラーは気にしなくていいのでしょうか?
-
[解決済み] bash スクリプトの "${BASH_SOURCE[0]}" と $( cd $( dirname "xxx" && pwd )) の意味について
-
[解決済み] eval "$(docker-machine env default) "とする。
-
[解決済み] Bash/Terminalで複数行の環境変数を書き出す方法 例: RSA秘密鍵
-
[解決済み] Bashで最新のディレクトリを変数に取得する