
shopt histreedit
ユーザーは失敗した履歴の置き換えを再編集できる必要があります。
歴史的交換がどのように失敗するのでしょうか。
とどうhistreedit
違うのhistverify
?
答え1
歴史的交換がどのように失敗するのでしょうか。
最後のコマンドを再実行したいのですが、ls
履歴置換項目を誤って入力したとします!lss
。で始まるコマンドがないと仮定するとlss
、
標準オプションを使用すると、
$ !lss bash: !lss: event not found $
を使用すると、
shopt -s histreedit
プロンプトがリセットされ、問題をより簡単に解決できます。$ !lss bash: !lss: event not found $ !lss
とどう
histreedit
違うのhistverify
?
histverify
代わりに、履歴置換を含むコマンドを実行しようとせずに結果として表示されるコマンドのプロンプトを設定します。
$ ls -a
.dotfile file1 file2 file3 ...
$ !ls
.dotfile file1 file2 file3 ...
$ shopt -s histverify
$ !ls
$ ls -a
これは本質的に確認ステップであり、便利です。たとえば、試みると、echo "hi!!"
Bashは最後に実行されたコマンドをオーバーライドし!!
(二重引用符は履歴拡張を無効にしません)、結果を自動的に実行します。明らかに、これにより他のコマンドが破損する可能性があります。を使用すると、histverify
予期せず履歴拡張が発生した場合に停止し、修正できます。