Как я могу выполнить серию команд из моей истории bash? Например, если я хочу выполнить команды с номерами от 34 до 42 в моей истории bash, я пробовал такие вещи, как:
for n in $(seq 34 42); do
exec \!$n;
done
но это не совсем так, правда. Любые идеи?
Спасибо!
Лучшее, о чем я могу думать, это что-то вроде этого. Обычно вы передаете историю в awk, который печатает строки с номерами в определенном диапазоне. Результаты передаются во вспомогательную оболочку.
history | awk '$1>32 && $1<42 {$1="";print substr($0,2)}' | bash
В некоторой степени основано на этот вопрос.
К сожалению, похоже, что History (и эквивалентная команда fc) отключена в сценариях. Я не нашел никакой документации относительно того, почему, наиболее близким из них является tldp-страница с описанием истории и Bash.