在 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