Bash:重复最后 N 个命令

Bash:重复最后 N 个命令

在 bash 中,您可以通过输入 来重复最后一个命令,或者例如!!倒数第三个命令。!-3

有没有一种快速方法可以重复最后 3 个命令,而无需!-1; !-2; !-3显式输入?

答案1

fc -N -1

其中-N是您要重复的最后 N 个命令。

这将打开一个编辑器,其中包含最后 N 个命令。您可以根据需要编辑命令,当您关闭编辑器时,它们将按顺序运行。

答案2

您还可以颠倒这个问题,将前面的 3 个命令分组,例如:

echo 1; echo 2; echo 3

然后你就会写得很好!!

答案3

好吧,这不是你所期望的,但这是有效的:

history | fgrep -v history | tail -3 | sed 's_^ *__' | cut -f 2- | bash

您可以为此创建一个函数:

myFunc(){
    history | egrep -v 'history|myFunc' | tail ${1} | sed 's_^ *__' | cut -f 2- | bash
}

所以你可以这样称呼它:

myFunc -3     

相关内容