Bash:执行一系列历史命令

我如何从我的bash历史logging执行一系列命令? 例如,如果我想在我的bash历史logging中执行编号为34到42的命令,我尝试了如下的操作:

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

但是这并不是真正的诀窍,是吗? 有任何想法吗?

谢谢!

我能想到的最好的就是这样的。 基本上你把历史loggingpipe理成awk,在一定范围内打印行号。 结果传递给一个子shell。

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

有些基于这个问题 。

不幸的是,似乎历史(和等效的fc命令)在脚本中被禁用。 我还没有find任何文档,为什么,最接近的解释历史和Bash的tldp页面 。