103.5基礎
long-taskを現在のBashから起動する。
完了を待たず、すぐに次のプロンプトへ戻る。
適切なコマンドはどれか。
× 不正解
コマンド末尾の&は、Bashに非同期で実行させる。直前に起動したバックグラウンドプロセスのPIDは$!で参照できる。
詳細解説
正しい
long-task &末尾の&により非同期リストとして実行し、シェルは完了を待たない。
正解。long-taskをバックグラウンドで開始する。
誤り
long-task &&後続コマンドを必要とするANDリストの途中で、バックグラウンド化ではない。
成功時に次を実行するANDリストである。
誤り
long-task |右辺コマンドを必要とする未完成のパイプラインである。
右辺が必要なパイプである。
誤り
wait long-taskwaitはジョブやPIDの完了待ちに使い、コマンドを開始しない。
既存の子プロセスを待つ側の操作である。
実際に確かめる
一時的な検証環境で実行できる例です。
sleep 0.1 & TASK_PID=$!; printf '%s
' "$TASK_PID"; wait "$TASK_PID"期待される結果
起動したsleepのPID(正の整数)理解のポイント
- &は非同期実行
- $!は直前のバックグラウンドPID
- waitで回収できる
確認時の注意
- 確認環境: Bash 5.2
基礎のおさらい
非同期実行
Bashは非同期コマンドの完了を待たず次の入力へ進む。
終了回収
後でwaitへPIDを渡すと、完了待ちと終了状態の取得ができる。
問題IDKP-103-078
確認環境Bash 5.2
最終技術確認2026-08-12
誤り・権利侵害を報告