如何在 tcsh 中打印感叹号?

如何在 tcsh 中打印感叹号?

printf感叹号的最佳表达方式是什么!——tcsh

似乎使用单引号或双引号对于转义感叹号没有任何影响;使用反斜杠 — \!— 确实有效,但随后它就会从history.

编辑:具体来说,根据我自己在 2014-09-21T15:34Z 的评论,这个问题可以重现savehist- 你必须exit重新加载tcsh才能体验这个问题。 :-)

答案1

如果您正在使用tcsh(不是原来的csh),你应该设置histlit变量:

histlit(+)

如果设置,内置和编辑器命令以及 savehist 机制将使用历史列表中行的文字(未展开)形式。另请参见toggle-literal-history编辑器命令。

set histlit=1因此,只需在您的~/.cshrc或中添加一行即可~/.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

相关内容