Mat*_*rle 29 bash command-history
ack 的安装指南建议使用以下命令安装 ack 脚本:
curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3
Run Code Online (Sandbox Code Playgroud)
我认为!#:3
最后是某种反向引用,但它是什么意思?zsh 中是否有等价物?谷歌没有帮助。
jof*_*fel 33
这是一种特殊的语法,由 bash 扩展。它也适用于 zsh。
根据 bash 手册页(部分 HISTORY EXPANSION),模式扩展如下:
!#
是指迄今输入的整个命令行是curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755
:
在事件指示符(在这种情况下为整行)和单词指示符(选择一个子部分)之间拆分3
~/bin/ack
最后的命令行(通常在执行前显示)是:
curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 ~/bin/ack
.
Bri*_*ian 11
在 中bash
,它是历史替换(所有历史替换都以 开头!
)。具体来说,!#
表示到目前为止命令行上的所有内容,并且加法 ':3' 表示第三个单词(从 0 开始计数)。
因此,上述命令转换!#:3
为~/bin/ack
.