次のbashスクリプトがあるとしましょう。
#!/usr/bin/env bash
process-1&
process-2&
process-3&
2つの質問があります。
- すべてのプロセスが終了コード0で終了したことをスクリプトの最後でどのように確認しますか?
- 開始されたすべてのプロセスが完了するまでスクリプトを「待機」してから要約できます
echo
(ユーザーに終了コードを知らせることができます)。
答え1
bash 組み込みを使用できますwait
。
3回wait -n
、毎回終了状態を確認します。
~からman bash
:
wait [-n] [n ...]
Wait for each specified child process and return its termination
status. Each n may be a process ID or a job specification; if a
job spec is given, all processes in that job's pipeline are waited
for. If n is not given, all currently active child processes are
waited for, and the return status is zero. If the -n option is
supplied, wait waits for any job to terminate and returns its exit
status. If n specifies a non-existent process or job, the return
status is 127. Otherwise, the return status is the exit status of
the last process or job waited for.