【问题标题】:How can I recall a command using ! without executing it immediately?如何使用 !不立即执行?
【发布时间】:2013-07-15 02:04:33
【问题描述】:

在 Bash 中,例如键入 !make 后跟 Enter 将调用并执行历史记录中最后一个以“make”开头的命令。

我只想回忆那个命令,但在我再次按 Enter 之前不要立即评估它,以便我查看它,或者在需要时对其进行编辑。

有没有办法在 Bash 中做到这一点?

【问题讨论】:

  • ctrl-r 或 ctrl-shift-r ?
  • 可以说,这根本不是一个编程问题,也不属于 SO——历史扩展(这个问题所涉及的功能)是用于交互式使用,而不是用于脚本。跨度>
  • 与 (t)csh 中的技巧相同:使用 :p 修饰符:!make:p!?search?:p
  • @Nasser:很高兴听到。别担心。

标签: bash


【解决方案1】:

可以使用CTRL+p获取上一条命令

您还可以使用 CRL+r 反向搜索历史记录中的命令。

【讨论】:

    【解决方案2】:

    任何历史扩展后的 p 修饰符将结果打印到命令行以供进一步编辑,而不是执行它。

    $ echo foo
    foo
    $ !!:p
    $ echo foo
              ^
              |
              cursor remains here
    

    【讨论】:

      【解决方案3】:

      您可以使用 history-expand-line 键 (M-^) 展开当前行的历史记录。

      M 修饰键通常映射到 Alt

      $ !make
      

      AltShift6

      $ make -C mydir
      

      如果您的最后一个make 命令是make -C mydir。然后,您可以就地编辑命令行。

      或者,您可以按照其他答案中的概述滚动浏览历史记录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-04
        相关资源
        最近更新 更多