Имеется несколько символов, которые имеют в Shell специальное значение. Это <, >, *,?, [ и ]. Чтобы отменить специальное значение этих символов, требуется заключать их особым образом в одинарные (') или двойные (") кавычки. То же действие в отношении одиночного символа выполняет обратная наклонная черта (\). (Обратные одинарные кавычки (`) используются только для командной подстановки в Shell и не отменяют специальных значений символов.)
Все символы, заключенные в одинарные кавычки, воспринимаются как обычные текстовые символы. Например, строка:
echostuff='echo $? $*; ls *| wc' |
только присваивает переменной echostuff значение
echo $? $*; ls *| wc |
но не вызывает выполнение ни одной из команд.
Внутри двойных кавычек специальное значение сохраняется только у некоторых символов - это$, \, ` и ". В результате внутри двойных кавычек имеет место подстановка значений переменных и команд. Однако, сами по себе двойные кавычки никак не влияют на подставляемые команды, и поэтому такие символы, как *, сохраняют свое специальное значение.
Чтобы отменить специальное значение символа $ и одинарных и двойных кавычек внутри двойных кавычек, перед ними требуется до полнительно указывать символ \. Вне двойных кавычек указание символа \ перед специальным символом адекватно заключению этого специального символа в одинарные кавычки. Символ \, стоящий перед символом новой строки, обозначает игнорирование этого символа. Благодаря этому можно продлевать командную строку.
Ниже приводятся несколько примеров использования кавычек:
|
|
|
9.Среда окружения в UNIX,управление средой через переменные
Окружение
Как уже говорилось, многие абстракции языка программирования доработаны в shell так, чтобы служить средством связывания и взаимодействия процессов с системой и друг с другом. Например, абстракция переменная превращается в понятие переменная окружения (environment variable).