我不小心r
在 shell 中输入了内容,结果似乎是我运行的最后一个命令的重复。
man zshbuiltins
,无益地,这样说:
r
- 一样fc -e -
。
的文档fc
几乎难以理解,但我设法梳理出这些引用:
fc [ -e
ename
] [ -LI ] [ -m
match
] [
old=new
... ] [
first
[
last
] ]
在包含这些历史事件的文件上调用编辑器程序ename ....当编辑完成时,将执行编辑的命令。
如果ename是
-
,则不会调用任何编辑器。
这对我来说就像 的行为r
类似于感叹号!
,因为它重播历史。确实,如果我setopt banghist
重新打开 bang,诸如r man
和 之类的! man
东西似乎都会重播我对人类的最后一次召唤。
哪些异同r
和!
?我可以使用的假设场景是r
什么?
mpy*_*mpy 10
您从手册页中引用了正确的段落,做得很好。
zsh继承r
自ksh,因为bash或csh都不知道这个命令。我想实现是为了尽可能与这三个主要 shell 兼容。
另一方面,历史 bang 机制!
源自csh,可以使用setopt NO_BANG_HIST
.
这两种机制之间的一个区别这使我想起的是,r
和!
解析不同,因为!
是保留字,但r
只有一个(内置)命令。这意味着你可以写例如
$ echo my last command was !!
Run Code Online (Sandbox Code Playgroud)
它得到(取决于您按下SPACE
或后的设置ENTER
)到
$ echo my last command was man zshexpn
Run Code Online (Sandbox Code Playgroud)
r
除非您$(r)
当然使用命令替换,否则这是不可能的。
所以,我认为这一切都归结为个人喜好或习惯(如果您曾经使用过ksh或csh)...
归档时间: |
|
查看次数: |
2001 次 |
最近记录: |