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