Bash:从历史记录中执行一系列命令

Bash:从历史记录中执行一系列命令

如何执行 bash 历史记录中的一系列命令?例如,如果我想执行 bash 历史记录中编号为 34 至 42 的命令,我尝试过以下方法:

for n in $(seq 34 42); do
   exec \!$n;
done

但这并不能真正解决问题,对吧。有什么想法吗?

谢谢!

答案1

我能想到的最好的办法是这样的。基本上,你将历史记录导入 awk,它会打印出带有特定范围内的数字的行。结果将传递到子 shell。

history | awk '$1>32 && $1<42 {$1="";print substr($0,2)}' | bash

有点基于这个问题

答案2

不幸的是,脚本中似乎禁用了历史记录(以及等效的 fc 命令)。不过,我还没有找到任何文档来解释原因,最接近的是tldp 页面解释 History 和 Bash

相关内容