Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Страницы справочного руководства ОС UNIX на русском man bash(1), часть тринадцатая


Информационный Канал Subscribe.Ru

Выпуск 65

man bash(1), часть тринадцатая

Уважаемые подписчики! Этот выпуск - тринадцатый в серии, посвященной командному интерпретатору bash. Перевод сделан сегодня, 12 июня.

Поскольку по правилам оформления рассылок в них не должно быть "висящих" гиперссылок, не все перекрестные ссылки в выпусках, посвященных bash, оформлены как гиперссылки. Когда перевод будет закончен, вы сможете скачать с сайта рассылки всю страницу в целом, со всеми необходимыми перекрестными и внешними ссылками.


bash(1)

ПОДСТАНОВКА КОМАНД ИЗ СПИСКА ИСТОРИИ

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

С помощью этой подстановки слова из списка истории можно вставлять во входной поток, что упрощает повторение команд, вставку аргументов предыдущей команды в текущую строку и исправление ошибок в предыдущих командах.

Подстановка из списка истории выполняется сразу же после считывания всей строки, прежде чем командный интерпретатор разобъет ее на слова. Это выполняется в два приема. Сначала определяется, какую строку из списка истории использовать при подстановке. Затем из этой строки выбираются части для вставки в текущую строку. Строка, выбираемая из списка истории, - это событие, а ее части, с которыми происходит работа, - слова. Для манипулирования выбранными словами поддерживаются различные модификаторы. Строка разбивается на слова точно так же, как и при чтении команды, так что несколько слов, разделенных метасимволами и взятые в кавычки, считаются одним словом. Подстановка из списка истории инициируется метасимволом подстановки из списка истории. По умолчанию - это символ !. Замаскировать этот метасимвол можно только обратной косой (\) и одиночными кавычками.

Особенностями подстановки из списка истории можно управлять путем установки ряда опций командного интерпретатора с помощью встроенной команды shopt. Если установлена опция командного интерпретатора histverify (см. описание встроенной команды shopt) и используется библиотека readline, результаты подстановки из списка истории не передаются сразу анализатору командного интерпретатора. Вместо этого, полученная в результате подстановки строка снова загружается в буфер редактирования readline для дальнейшего изменения. Если используется библиотека readline и установлена опция командного интерпретатора histreedit, неудавшаяся подстановка из списка истории команд будет повторно загружена в буфер редактирования readline для исправления. Опция -p встроенной команды history может использоваться для предварительного просмотра результатов подстановки из списка истории перед ее использованием. Опция -s встроенной команды history позволяет добавлять команды в конец списка истории без их фактического добавления, так что их можно будет повторно использовать в дальнейшем.

Командный интерпретатор позволяет управлять назначением различных метасимволов, используемых механизмом подстановки команд из списка истории (см. описание переменной histchars ранее в разделе "Переменные командного интерпретатора").

    Пометки событий

Пометка события - это ссылка на элемент командной строки в списке истории.

!
Начинает подстановку из списка выполненных команд, если только далее не идет пробел, перевод строки, = или (.
!n
Ссылка на командную строку n.
!-n
Ссылка на текущую строку минус n.
!!
Ссылка на предыдущую команду. Это синоним для команды !-1.
!строка
Ссылка на самую недавнюю команду, начинающуюся со строки.
!?строка[?]
Ссылка на самую недавнюю команду, содержащую строку. Завершающий символ ? можно не указывать, если сразу после строки идет новая строка.
^строка1^строка2^
Быстрая подстановка. Повторить последнюю команду, заменяя строку1 строкой2. Аналогично !!:s/строка1/строка2/ (см. подраздел "Модификаторы" ниже).
!#
Вся набранная до этого момента командная строка.

    Пометки слов

Пометки слов (word designators) используются для выбора необходимых слов из события. Двоечточие (:) отделяет пометку слова от спецификации события. Его можно не указывать, если пометка слова начинается символом ^, $, *, - или %. Слова нумеруются с начала строки, причем первое слово имеет номер 0. Слова вставляются в текущую строку через один пробел.

0
Нулевое слово. Для командного интерпретатора это - имя команды.
n
n-ное слово.
^
Первый аргумент. Т.е. слово 1.
$
Последний аргумент.
%
Слово, сопоставившееся при последнем поиске '?строка?'.
x-y
Диапазон слов; '-y' - это сокращение для '0-y'.
*
Все слова, кроме нулевого. Это синоним '1-$'. Вполне допустимо использовать * если в событии есть всего одно слово - в этом случае возвращается пустая строка.
x*
Сокращение для x-$.
x-
Сокращенная форма для x-$, аналогично x*, но не включая последнее слово.

Если пометка слова указана без спецификации события, в качестве события используется предыдущая команда.

    Модификаторы

После необязательной пометки слова может идти последовательность одного или нескольких следующих модификаторов, предваряемых двоеточием - ':'.

h
Удаляет последний компонент имени файла, оставляя только начало.
t
Удаляет все начальные компоненты имени файла, оставляя только последний.
r
Удаляет хвостовой суффикс вида .xxx, оставляя базовое имя файла.
e
Удаляет все, кроме хвостового суффикса.
p
Выдает новую команду на экран, но не выполняет ее.
q
Берет подставляемые слова в кавычки, предотвращая дальнейшие подстановки.
x
Берет подставляемые слова в кавычки, как и модификатор q, но разбивает на слова по пробелам и символам новой строки.
s/old/new/
Подставляет new вместо первого вхождения old в строке события. Вместо / можно использовать любой ограничитель. Завершающий ограничитель не обязателен, если он является последним символом в строке события. Ограничитель в строках old и new можно маскировать обратной косой. Если в строке new есть метасимвол &, он заменяется строкой old. Обратная косая маскирует метасимвол &. Если строка old - пустая, вместо нее используется строка из последней по времени подстановки или, если подстановок из списка истории ранее не было, последняя строка, искавшаяся с помощью конструкции !?строка[?].
&
Повторяет предыдущую подстановку.
g
Применяет изменения ко всей строке события. Этот модификатор используется совместно с ':s' (например, ':gs/old/new/') или ':&'. При использовании с ':s', вместо косой (/) можно использовать любой ограничитель, а завершающий ограничитель указывать не обязательно, если он является последним символом в строке события.

В следующем выпуске

Очередной выпуск о службе NFS в UnixWare 2.03. Выпуск ожидается в четверг, 13 июня.

С наилучшими пожеланиями,

  В.К.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное