Answers:
正如伊格纳西奥所说,使用 !!,但如果你坚持:
$(history | sed '$d' | sed -n '$p' | cut -d ' ' -f 3-)
说明:
$() 执行命令输出 sed '$d' 删除最后一个命令,即 2001 $(history | sed '$d' | sed -n '$p' | cut -d ' ' -f 3-)sed -n '$p' 仅打印最后一行,即 2000 yourpreviouscommandcut -d ' ' -f 3- 删除前三个字段,用空格分隔,即 <space>2000<space>我认为它可以更简洁和强大,但它现在有效。
编辑 :如果你想使用 history 代替 !! 因为你正在使用的shell没有 !!,你运气不好; history 是内置的shell,而不是程序。如果他们没有,简单的贝壳不太可能拥有它 !!。例如,破折号不会:
imgx64@home:~$ dash
$ history
dash: history: not found
$
在Bash, fc 命令可以做你想要的。
从 man bash:
...
在第二种形式中,在每个实例之后重新执行命令 pat替换为rep。与此一起使用的有用别名是r="fc -s",这样打字r cc运行最后一个命令 以。。。开始cc和打字r重新执行最后一个命令。
...
up箭头键为我工作。