Ответ Джона Рейнхолда великолепен, но я предлагаю гораздо более мощное решение. У меня также есть комментарий о гоче в ответе Джона, но у меня недостаточно репутации, чтобы иметь возможность комментировать напрямую, поэтому @Jon Reinhold, если вы прочитаете это, пожалуйста, отправьте мой комментарий ниже.
Bash включает команду fc
, которая принимает в качестве параметров номера строк списка истории bash. Затем он открывает редактор по умолчанию с этими строками в виде текста. В этот момент вы можете при желании редактировать строки. Затем, когда вы выходите из редактора, bash выполняет эти строки!
Примером редактирования, которое вы, возможно, захотите сделать, является добавление ко всем, кроме последней строки, что-то вроде "; read -p" next ... ". Это заставит bash выполнить каждую строку и запросит вас, прежде чем продолжить.
Комментарий для Джона Рейнхольда: отличный ответ, но вы должны его квалифицировать, потому что если пользователь установил переменную bash HISTCONTROL для включения
erasedups
, то после выполнения C-o
пользователь будет сбит с толку, поскольку вместо ожидаемой следующей команды в отображаемой истории, той, которая после этого будет отображаться. Это связано с тем, что bash удалил исходный экземпляр выполненной команды, и, следовательно, все команды впоследствии сместились на одну строку вверх, т.е. на один меньший индекс в списке истории.