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

Fra*_*ner 2 linux shell bash

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

for n in $(seq 34 42); do
   exec \!$n;
done
Run Code Online (Sandbox Code Playgroud)

但这并不能解决问题,是吗。有任何想法吗?

谢谢!

Zor*_*che 6

我能想到的最好的就是这样的事情。基本上,您将历史记录传输到 awk 中,该 awk 会打印具有特定范围内的数字的行。结果被传递到一个子shell。

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

有点基于这个问题