Слова и разделители
При разборе командной строки shell использует понятие разделитель (delimiter). Разделитель - это символ, разделяющий слова; таким образом, командная строка - это последовательность слов (которые имеют значение) и разделителей (которые значения не имеют). Для shell разделителями являются символ пробела, символ табуляции и символ перевода строки (который все-таки может попасть между словами способом, описанным в лекциях 6 и 7). Количество разделителей между двумя соседними словами значения не имеет.
Первое слово в тройке передается команде как первый параметр, второе - как второй и т. д. Для того чтобы разделитель попал внутрь слова (и получившаяся строка с разделителем передалась как один параметр), всю нужную подстроку надо окружить одинарными или двойными кавычками:
[methody@localhost methody]$ echo One Two Three One Two Three [methody@localhost methody]$ echo One "Two Three" One Two Three [methody@localhost methody]$ echo 'One > > Ой. И что дальше? > А, кавычки забыл!' One Ой. И что дальше? А, кавычки забыл! [methody@localhost methody]$
Пример 2.20. Закавычивание в командной строке (html, txt)
В первом случае команде echo было передано три параметра - "One", "Two" и "Three". Она их и вывела, разделяя пробелом. Во втором случае параметров было два: "One" и "Two Three". В результате эти два параметра были также выведены через пробел. В третьем случае параметр был всего один - от открывающего апострофа "One'" до закрывающего ...забыл!'". Все время ввода bash услужливо выдавал Мефодию подсказку "> " - в знак того, что набор командной строки продолжается, но в режиме ввода содержимого кавычек.
4)
Странное слово "нода" Мефодий решил оставить на совести неизвестного переводчика сообщений info.
5)
Точнее, на стандартный вывод, см. лекцию 6.
6)
Игра слов: "Bourne Again" вслух читается как "born again", т. е. "возрождённый".


![]() | © 2003-2007 INTUIT.ru. Все права защищены. |