Материал предоставлен https://it.rfei.ru

Слова и разделители

При разборе командной строки shell использует понятие разделитель (delimiter).

Разделитель - это символ, разделяющий слова; таким образом, командная строка - это последовательность слов (которые имеют значение) и разделителей (которые значения не имеют).

Для shell разделителями являются символ пробела, символ табуляции и символ перевода строки (который все-таки может попасть между словами способом, описанным в лекциях 6 и 7). Количество разделителей между двумя соседними словами значения не имеет.

Первое слово в тройке передается команде как первый параметр, второе - как второй и т. д. Для того чтобы разделитель попал внутрь слова (и получившаяся строка с разделителем передалась как один параметр), всю нужную подстроку надо окружить одинарными или двойными кавычками:

[ivan@localhost ivan]$ echo One   Two   Three
    One Two Three
[ivan@localhost ivan]$ echo One   "Two   Three"
    One Two         Three
[ivan@localhost ivan]$ echo 'One
>
> Ой. И что дальше?
> А, кавычки забыл!'
    One
    Ой. И что дальше?
    А, кавычки забыл!
[ivan@localhost ivan]$

Пример 2.20. Закавычивание в командной строке

В первом случае команде echo было передано три параметра - One, Two и Three. Она их и вывела, разделяя пробелом. Во втором случае параметров было два: One и Two Three. В результате эти два параметра были также выведены через пробел. В третьем случае параметр был всего один - от открывающего апострофа 'One' до закрывающего ...забыл!'. Все время ввода bash услужливо выдавал Ивану подсказку > - в знак того, что набор командной строки продолжается, но в режиме ввода содержимого кавычек.

Команды и утилитыТесты по теме: "Терминал и командная строка"