在bash中使用`!#`有什么用?

前端之家收集整理的这篇文章主要介绍了在bash中使用`!#`有什么用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不是在谈论UNIX shebang意图给出解释器的路径.事实上,shebang已经很难成功地谷歌这个问题了…

我在谈论bash扩展:

> !!检索前一个命令(类似于向上箭头,但更有用)
>!$检索最后一个命令的最后一个单词
>!#似乎检索当前行

但实际上有用的是什么!#?

> echo!#extens to echo echo
> echo echo!#extens to echo echo echo echo
> ls!#扩展到ls ls.

所有这些看起来都是毫无意义的.我所知道的!#命令是我从使用它学到的东西 – 我不确定我是否知道它的真正功能.

正如所提到的关于问题和其他答案的评论,你可以很容易地找到man bash的部分:
!#     The entire command line typed so far.

人工页面或其他文档没有明确说明的内容,也许会引导您将其迷惑为有用的用途!#bash是指bash事件指示符与单词指示符和修饰符结合使用(在事件指示符下面找到)在手册页上).将命令与管道链接在一起时,用例也更有意义;或& /&&

例如:

我可以使用替换修饰符对两个输入bar和baz运行脚本foo.sh:

$./foo.sh bar; !#:s/bar/baz/

扩展形成:

./foo.sh bar; ./foo.sh baz;

或者下面转载的文档(R.I.P.文档)中的示例显示了如何使用单词selector:N来选择命令的第一个参数到目前为止输入并整齐地cd到刚刚创建的目录中:

$mkdir backup_download_directory && cd !#:1
mkdir backup_download_directory && cd backup_download_directory

这些例子非常简单,但我希望它们能够显示出来!#在制作强大的单行程序时,可以真正为某些人节省一些严重的冗余打字.

原文链接:https://www.f2er.com/bash/384961.html

猜你在找的Bash相关文章