有没有办法!$在 shell 内交互式编辑命令时扩展 in 命令行?
例如,当我输入 时ls !$,我按下某个按钮,然后我看到 的值是什么!$。
您是否希望按字面意思处理此序列,而不进行任何扩展?你可以用撇号引用它:'!$'
更新如果你想在执行之前扩展它,你可以使用Ctrl-Alt-E,但要注意它也会执行“单词扩展”,所以!$ "single argument"会扩展为expanded_string single argument(无引号 => 两个参数)。
您也可以使用Alt-_(适用于 emacs 和 vi 模式),或Alt-.(仅适用于 emacs 模式) 直接插入前一个命令的最后一个参数,而不进行任何扩展。
可以简单使用:</p>
!$:p
这将打印最近执行的命令的最后一个单词。
或键入Ctrl-Alt-e以展开!$
或键入ESC.以获取!$
您键入!$,然后按:Alt-^立即!$展开。
感谢@Alexis在https://stackoverflow.com/q/9360013/813665上的回答,让我看到了Alt-^.