mik*_*996 7 zsh shell command-line
当我在选择的外壳中输入一行并改变主意时,我可以快速抛出C-c
并重新开始。在bash
它下面看起来是这样的:
user@machine:~$ rm everything^C
user@machine:~$
Run Code Online (Sandbox Code Playgroud)
但是 on zsh
,我真的更喜欢整体,没有显示任何内容:
(~) rm -rf /
(~)
Run Code Online (Sandbox Code Playgroud)
是的,您可能会明白为什么我希望在该行上看到插入符号 C 或类似的消息,这样我就不会混淆哪一行实际上已被执行并在历史中。
这个小问题在很大程度上是无法搜索的。
您可以为SIGINT定义一个陷阱(由 触发CTRL-C
),它将打印^C
(或您想要的任何其他文本):
TRAPINT() {
print -n "^C"
return $(( 128 + $1 ))
}
Run Code Online (Sandbox Code Playgroud)
这个例子取自man zshmisc
. 返回命令有以下背景:
由未捕获信号终止的程序通常返回状态 128 加上信号编号。因此 [above code] 使 SIGINT 的处理程序打印一条消息,然后模拟信号的通常效果。
归档时间: |
|
查看次数: |
444 次 |
最近记录: |