1.03.1基礎
対話的Bashで、直前に実行したコマンドを同じ内容のままもう一度実行する。
履歴展開が有効である。
入力する履歴指定はどれか。
× 不正解
対話的Bashで!!は直前の履歴項目全体へ展開される。実行前に展開内容を確認したい場合は履歴や編集機能を使う。
詳細解説
誤り
!0直前の履歴項目を表す一般的な指定ではない。
誤り。直前のイベント全体には!!を使い、!0をその意味では使わない。
誤り
!$直前のコマンド全体ではなく、その最後の引数へ展開する。
誤り。!$はコマンド名や他の引数を含まず、最後の1引数だけへ展開する。
正しい
!!直前の履歴コマンド全体へ展開する。
正しい。!!が直前のコマンド行全体へ展開され、同じ内容を再度実行する。
誤り
!?検索文字列を伴う履歴参照の形が完成していない。
誤り。!?だけでは検索文字列と終端を含む履歴検索指定が完成していない。
実際に確かめる
一時的な検証環境で実行できる例です。
bash -ic 'set -H; echo first; !!' 2>/dev/null期待される結果
firstが2回表示される(履歴展開後のコマンド表示を伴う場合がある)理解のポイント
- !!は直前全体
- !$は直前の最後の引数
- 履歴展開は対話利用中心
確認時の注意
- 確認環境: Bash 5.x / 一時的な対話シェル
基礎のおさらい
履歴展開の確認
展開されたコマンドが実行前に表示される設定でも、破壊的な操作の再実行には注意する。
対話編集
上矢印やreadline検索で直前行を呼び出し、編集してから実行する方法も安全である。
問題IDKL-101-440
確認環境Bash 5.x / 一時的な対話シェル
最終技術確認2026-08-13
誤り・権利侵害を報告