Основные символы командной оболочки ОС семейства UNIX
Опубликовано:
Комментариев: 1

Командная оболочка предоставляет возможность использования переменных. Значение переменной оболочки - строка символов. Вообще, строки - это единственный тип данных, с которым работает интерпретатор оболочки. Все переменные и все константы являются строками.
Переменной можно присвоить значение не только какой-либо константы. Можно присвоить переменной значение, являющееся выводом какой-либо команды.
Для этого в правой части оператора присваивания записывается имя нужной команды (со всеми параметрами), заключенное в обратные апострофы.
Также переменной может быть присвоено значение, введенное пользователем, с помощью команды read <имя переменной>.
Для конкатенации переменных и констант используется их последовательная запись. В том случае, когда при такой записи имя переменной сливается с конкатенируемой константой, они должны быть разделены с помощью фигурных скобок.
Язык оболочки поддерживает средства экранирования - двойные кавычки (" "), одинарные кавычки (' ’) и обратную косую черту (бэкслэш) (). Двойные кавычки экранируют в строке символы, использующиеся для управления оболочкой. Например, не допускается наличие в правой части оператора присваивания пробелов (т.к. они используются оболочкой как разделители команд). Если же необходимо присвоить переменной значение строки, содержащей пробел, то эту строку необходимо заключить в двойные кавычки. Одинарные кавычки способны также экранировать символ обращения к значению переменной.
Оболочки поддерживают перенаправление потоков на другие файлы. Символы «>» и >>" обозначают перенаправление вывода. Их различие в том, что ">" перезаписывает целевой файл, а ">>" - добавляет в него. Стандартные файлы имеют номера: 0 - stdin, 1 - stdout и 2 - stderr. Эти номера могут быть использованы в операциях перенаправления. Например, команда вида <имя команды> <параметры> 2>error.log будет выводить все сообщения об ошибках в файл "error.log”.
Символ *<” обозначает перенаправление ввода. Последовательность символов << <строка>" заставляет оболочку считывать данные из потока ввода до тех пор, пока не будет встречена <строка>.
Символ обратной косой черты позволяет экранировать единичный следующий за ним символ, например, пробел или метасимвол в присваиваемой строке. Этот символ может экранировать и сам себя.