Bashの^foo^barの組み合わせは何をしますか? [コピー]

Bashの^foo^barの組み合わせは何をしますか? [コピー]

最近Bashで誰かが処刑される映像を見ました^foo^bar。この組み合わせの用途は何ですか?

答え1

バッシュがそれを呼ぶクイック交換。 Bashのマニュアルページの「記録拡張」セクションの「イベントインジケータ」セクション(オンラインマニュアル):

^string1^string2^

迅速な交換。前のコマンドを繰り返して、string1をstring2に置き換えます。等しい !!:s/string1/string2/

したがって、^foo^bar以前に実行されたコマンドは実行されますが、最初の発生はfoo置き換えられますbar

の場合、s/old/new/bashのマニュアルページに「最後の区切り文字がイベントラインの最後の文字である場合はオプションです」と示されています。そのため、使用できますが、^foo^bar必ずしもそうする必要はありません^foo^bar^

(望むよりこの回答他のいくつかの指定子については言及していませんが)。

答え2

^foo^bar最後のコマンドを実行して最初のインスタンスfoobar。たとえば、

$ ech "hello"
-bash: ech: command not found
$ ^ech^echo
echo "hello"
hello

関連情報