ПОДСТАНОВКА КОМАНД ИЗ СПИСКА ИСТОРИИ
Командный интерпретатор bash поддерживает возможность подстановки команд из списка истории, аналогично командному интерпретатору csh. В этом разделе описан соответствующий синтаксис. Эта возможность включается по умолчанию для интерактивных командных интерпретаторов и может быть отключена с помощью опции +H встроенной команды (см. раздел "" далее). Не интерактивные командные интерпретаторы по умолчанию не выполняют подстановку команд из списка истории.
С помощью этой подстановки слова из списка истории можно вставлять во входной поток, что упрощает повторение команд, вставку аргументов предыдущей команды в текущую строку и исправление ошибок в предыдущих командах.
Подстановка из списка истории выполняется сразу же после считывания всей строки, прежде чем командный интерпретатор разобъет ее на слова. Это выполняется в два приема. Сначала определяется, какую строку из списка истории использовать при подстановке. Затем из этой строки выбираются части для вставки в текущую строку. Строка, выбираемая из списка истории, - это событие, а ее части, с которыми происходит работа, - слова. Для манипулирования выбранными словами поддерживаются различные модификаторы. Строка разбивается на слова точно так же, как и при чтении команды, так что несколько слов, разделенных метасимволами и взятые в кавычки, считаются одним словом. Подстановка из списка истории инициируется метасимволом подстановки из списка истории. По умолчанию - это символ !. Замаскировать этот метасимвол можно только обратной косой (\) и одиночными кавычками.
Особенностями подстановки из списка истории можно управлять путем установки ряда опций командного интерпретатора с помощью встроенной команды . Если установлена опция командного интерпретатора
(см. описание встроенной команды ) и используется библиотека readline, результаты подстановки из списка истории не передаются сразу анализатору командного интерпретатора. Вместо этого, полученная в результате подстановки строка снова загружается в буфер редактирования readline для дальнейшего изменения. Если используется библиотека readline и установлена опция командного интерпретатора , неудавшаяся подстановка из списка истории команд будет повторно загружена в буфер редактирования readline для исправления. Опция -p встроенной команды может использоваться для предварительного просмотра результатов подстановки из списка истории перед ее использованием. Опция -s встроенной команды позволяет добавлять команды в конец списка истории без их фактического добавления, так что их можно будет повторно использовать в дальнейшем.
Командный интерпретатор позволяет управлять назначением различных метасимволов, используемых механизмом подстановки команд из списка истории (см. описание переменной ранее в разделе "").