在bash中,如何在键入命令行时展开!$?

时间:2012-02-08 09:31:08

标签: bash bash-completion

在交互式编辑shell中的命令时,有没有办法在命令行中展开!$

例如,当我输入ls !$时,我按下某个按钮然后我会看到!$的值是多少。

3 个答案:

答案 0 :(得分:4)

您是否希望按顺序处理此序列,而不进行任何扩展?你可以用撇号引用它:'!$'

UPDATE 如果要在执行前展开它,可以使用 Ctrl-Alt-E ,但要注意它也会执行“word扩展”,所以!$ "single argument"会扩展为expanded_string single argument(没有引号=>两个参数)。

您也可以使用 Alt -_ (适用于emacs和vi模式)或 Alt - 。(仅适用于emacs模式)只插入最后一个直接上一个命令的参数,没有任何扩展。

答案 1 :(得分:4)

您可以简单地使用:

!$:p

这将打印最近执行的命令的最后一个单词。

或输入 Ctrl-Alt-e 展开!$

或输入 ESC 获取!$

答案 2 :(得分:1)

您输入!$,然后按:Alt-^并立即展开!$

感谢@Alexishttps://stackoverflow.com/q/9360013/813665上的回答,它向我展示了Alt-^的力量。