なぜbashがデフォルトで履歴置換をまだ有効にしているのか知っていますか?私.bashrc
はset +H
長年にわたってこの機能を取り入れてきましたが、他の人たちはまだこの機能に噛まれています。
ほぼすべての人がコピーアンドペースト機能を備えた端末を使用しており、readline
ライブラリでコンパイルされたbash と履歴の置換が対話型シェルでのみデフォルトで有効になっていることを考えると、この機能を使用する理由は本当にありますか?すべてのシェルでデフォルトで無効になっている場合でも、既存のスクリプトは破損しません。
履歴置換が壊れている理由がわからない場合は、これを試してください。
$ set +H # disable feature history substitution
$ echo "WTF???!?!!?"
WTF???!?!!?
$ set -H # enable feature history substitution
$ echo "WTF???!?!!?"
echo WTF???echo WTF???!?!!?
WTF???echo WTF???!?!!?
(それはすべてのスクリプトのために、デフォルトでは無効と機能を実行する前に結果を確認するために存在していた場合、明らかな特徴は、大きな問題がありますshopt -s histverify
。)
こちらもご覧ください:
&
ですか?を含むファイル名をエスケープまたは引用する必要があるのはなぜ?
ですか?これが問題だと思う人のためのUIがあります。
!$
は1日に数回使用していますが、!!
かなり頻繁に使用しています。他の履歴置換をあまり使用しないことを認めなければなりませんが、何年も使用してきたシェルのデフォルトの動作が突然変更された場合、私は間違いなく不満に思うでしょう。
ls -l foo/bar/baz/weeble.cpp
とless !$
よりリコールコマンドおよび編集それ。