Есть три типа кавычек: двойные ( " ), одиночные ( ’ ) и обратные ( ` ) (в литературе для последних встречаются и другие названия: одиночные апострофы, слабое ударение). Они всегда используются в паре.
Внутри двойных кавычек отменяется действие всех служебных символов кроме трех: $ (доллар), ` и \ (обратный слеш). В некоторых вариантах оболочек пара таких символов отменяется еще и действие «!» и «|». Одинарные кавычки действуют более «строго». Внутри них теряют назначение все специальные символы оболочки. Еще одна пара символов – обратные кавычки – применяются, когда результат выполнения одной команды нужно использовать как аргументы для выполнения другой команды.
Начнем с рассмотрения использования двойных кавычек. Следующие команды echo выводят значения двух переменных HOME и BASH. Для двойных кавычек в первом и втором случаях вывод одинаков – двойные кавычки не отменяют действие символа $. Только в третьем случае его действие отменяется символом \, поэтому распечатывается не значение переменной, а набор символов $HOME.
echo “$HOME $BASH”
/root /bin/bash
echo “$HOME $BASH”
/root /bin/bash
echo “\$HOME $BASH”
$HOME /bin/bash
В следующих командах имена переменных заключены в одиночные кавычки. В первом и втором случаях действие символа $ отменяется, а в третьем – отменяется действие и \..
echo’$HOME $BASH’
$HOME $BASH
echo ’$HOME $BASH’
$HOME $BASH
echo ’\$HOME $BASH’
\$HOME $BASH
Теперь приведем примеры команд с использованием обратных кавычек. Их использование оправдано, когда результат выполнения одной команды надо передать другой. Если Вы введете команду
Cal 11
то выведется информация о 11-м месяце 2006 года.
Ноябрь 2006
Пн Вт Ср Чт Пт Су Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Команда
date “+%m %y“
даст такой результат
11 06
Такие две команды можно соединить обратными кавычками так
cal `date “+%m %y“`
Это даст результат как у команды cal с параметрами 11 06.
Ноябрь 2006
Пн Вт Ср Чт Пт Су Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Продолжим рассматривать использование других специальных символов оболочек.
Символ ;
Этот символ используется, когда в строке надо записать более одной команды. Если не ставить этот знак, то вторая команда будет восприниматься как параметры первой. Но если соединить этим знаком обе команды, то они будут выполнены последовательно. К примеру, если записать