printf
感嘆符を表現する最良の方法は何ですか!
?tcsh
?
一重引用符または二重引用符を使用すると、感嘆符のエスケープ処理には影響しないようです。バックスラッシュを使用すると\!
動作しますがhistory
。
編集:特に2014-09-21T15:34Zに関する私の意見によると、問題は再現可能です。問題を経験するには、再ロードする必要がsavehist
あります。 :-)exit
tcsh
答え1
使用する場合tcsh
(元ではない)変数をcsh
設定する必要があります。histlit
histlit
(+)
設定されている場合、組み込みコマンドとエディタコマンドとsavehistメカニズムは、履歴リストの行のリテラル(拡張されていない)形式を使用します。
toggle-literal-history
エディタコマンドも参照してください。
set histlit=1
したがって、orに~/.cshrc
1行を追加するだけです~/.tcshrc
。
その後、バックスラッシュを使用して引用することができます!
。
printf 'a\!b\n'
答え2
努力する:
$ printf 'a\!c\n'
a!c
または:
$ printf '%s\n' a\!c
答え3
tcsh
!履歴代替文字を使用してください。
g4ur4v:~> echo $0
tcsh
g4ur4v:~> printf '!\n'
!
編集する
g4ur4v:~> echo 'a\!c'
a!c
g4ur4v:~> printf 'a\!c\n'
a!c