【发布时间】:2018-01-24 23:58:30
【问题描述】:
我不是在谈论旨在提供解释器路径的 UNIX shebang。事实上,shebang 已经很难在 google 上成功地搜索到这个问题了......
我说的是bash扩展:
-
!!检索前面的命令(类似于向上箭头,但更有用) -
!$检索最后一个命令的最后一个单词 -
!#似乎检索当前行
但是!# 的实际用途是什么?
-
echo !#扩展为echo echo -
echo echo !#扩展为echo echo echo echo -
ls !#扩展为ls ls。
所有这些似乎都毫无意义。关于!# 命令,我所知道的只是我从使用它中学到的东西——我不确定我是否知道它的真正功能。
【问题讨论】:
-
记录在案here;它扩展为“到目前为止键入的整个命令行。”。
-
man bash | grep '!#' -
您有两个答案给出了定义,但是您是否正在寻找
!#的有效使用示例? -
@WillBarnwell 是的!我是。我真的有两个问题。 1)这个有什么用。 2)我看不到这个的用途......这真的是
!#所做的一切吗? –– 问题 2 得到了很好的回答:“是的。事实上,这就是!#所做的一切。” 然而,这让我更想知道问题1的答案! -
@AriSweedler, ...历史扩展是为了向后兼容我们有 readline 之前的时间而存在的,并且为了那个时代仍然有手指记忆的人们的利益。关闭它(使用
set +H)通常被认为是个好主意。