103.5基礎
対話的Bashのジョブ番号1がバックグラウンドで動作している。
同じジョブをフォアグラウンドへ移し、端末の制御対象にする。
適切なコマンドはどれか。
× 不正解
fgにジョブ指定を渡すと、そのジョブをフォアグラウンドへ移す。%1はジョブ番号1を表す。
詳細解説
誤り
jobs %1jobsは状態を表示するが、フォアグラウンドへ移さない。
状態を表示するだけである。
誤り
bg %1停止ジョブをバックグラウンドで再開するため、フォアグラウンド化ではない。
バックグラウンドのまま再開する。
正しい
fg %1ジョブ1をフォアグラウンドへ移し、必要なら再開する。
正解。ジョブ1を端末のフォアグラウンドへ戻す。
誤り
kill %1既定で終了シグナルを送り、端末の制御対象へ移さない。
既定で終了要求を送る。
実際に確かめる
一時的な検証環境で実行できる例です。
対話的Bashで sleep 30 & を実行後、fg %1 を実行して確認期待される結果
sleepがフォアグラウンドジョブとなり、Bashは完了まで待つ理解のポイント
- fgはフォアグラウンド化
- %Nはジョブ指定
- 端末からのシグナル対象になる
確認時の注意
- 確認環境: 対話的Bash 5.2
- fgはジョブ制御が有効な対話的シェルで利用する。
基礎のおさらい
フォアグラウンドプロセスグループ
端末からの入力やCtrl+C等のシグナルは通常、フォアグラウンドのプロセスグループへ届く。
既定ジョブ
引数なしのfgは、現在ジョブとして選ばれたジョブを対象にする。
問題IDKP-103-080
確認環境対話的Bash 5.2
最終技術確認2026-08-12
誤り・権利侵害を報告