私はほとんどの人生をIPythonシェルから送ったので、ターミナルコマンドの前に感嘆符を付ける悪い習慣があります。通常、これはエラーを引き起こしますが、時には悪いことがあります。!
端末の機能を効果的に無効にできますか?これはスクリプトを妨げる危険がありますか?
ベストアンサー1
対話型シェルでは、デフォルトで!
履歴拡張のために、シェルは次のテキストに一致するコマンドを探し、!
そのコマンドを実行します。に示すようにこの回答到着Bashで感嘆符(!)を使用できませんか?シェルでは、履歴拡張を無効にできます。
- 大きな打撃:
set +H
- ジシュ語:
set -K
感嘆符ベースの履歴拡張を使用したくない場合は、シェルの起動スクリプトに追加します。
これは!
無視されませんが、履歴からのコマンドの実行を防ぎます。存在しないと文句を言う!command
でしょう!command
。
シェルスクリプトはこれらの設定の影響を受けず、非対話型設定を使用して独自のシェルを取得します(履歴拡張はデフォルトでは含まれていません)。