Обозначения слов
Обозначения слов используются для выбора нужных слов из события. Они необязательны; если обозначение слова не указано, при подстановке из истории используется событие целиком. Спецификацию события от обозначения слова отделяет «:». Этот разделитель можно опустить, если обозначение слова начинается с «^», «$», «*», «-» или «%». Слова нумеруются с начала строки, причём первое слово обозначается числом 0 (ноль). Обычно это первое слово — команда, а аргументы начинаются со второго слова. Слова вставляются в текущую строку и разделяются одиночными пробелами.
Например,
!!-
обозначает предыдущую команду. При вводе этого обозначения предыдущая команда повторяется целиком.
!!:$-
обозначает последнее слово предыдущей команды. Его можно сократить до
!$. !fi:2обозначает второй аргумент последней команды, начинающейся с букв
fi.
Ниже приведены обозначения слов:
0 (zero)-
Слово номер
0. В оболочке и многих других приложениях это слово команды. n-
Слово номер n.
^-
Первый аргумент: слово 1.
$-
Последнее слово. Обычно это последний аргумент, но если в строке только одно слово, обозначение раскрывается в нулевое слово.
%-
Первое слово, найденное при последнем поиске «?string?», если строка поиска начинается с символа, входящего в состав слова. По умолчанию поиск начинается с конца каждой строки и продолжается к её началу, поэтому первым найденным будет слово, ближайшее к концу строки.
x-y-
Диапазон слов; «-y» — сокращение для «0-y».
*-
Все слова, кроме слова номер
0. Это синоним «1-$». Использовать «*» допустимо, даже если в событии только одно слово; в этом случае обозначение раскрывается в пустую строку. x*-
Сокращение для «x-$».
x--
Сокращение для «x-$», аналогичное «x*», но без последнего слова. Если «x» не указано, по умолчанию используется 0.
Если обозначение слова указано без спецификации события, в качестве события используется предыдущая команда; это эквивалентно !!.
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Word-Designators.html