"Рас Сэйдж. Приемы профессиональной работы в UNIX" - читать интересную книгу автора

При использовании переменные shell являются локальными для рабо-
тающего в данный момент интерпретатора shell. Их можно передать ин-
терпретаторам shell более глубокого уровня путем их "экспортирования".
Следовательно, если вы создаете новый командный процессор, все ваши
экспортированные переменные будут по-прежнему определены для этого ин-
терпретатора shell. Исчерпывающий список переменных shell, установлен-
ных по умолчанию и используемых системой, см. в приложении 1.
Отметим, что в нашем примере файла настройки для каждого подката-
лога первого уровня, который есть в нашем регистрационном каталоге, мы
также имеем переменные shell, связанные с именем этого подкаталога.
Таким образом, мы можем легко обращаться к различным областям нашего
регистрационного каталога.

ПОСТРОЧНЫЙ РАЗБОР ПРИМЕРА ФАЙЛА НАСТРОЙКИ

Строки 3-8 делают хитрую установку главной подсказки - переменной
PS1. В строке 3 инициализируется переменная, которая выбирает подсказ-
ку. Значение ushort жестко закодировано в файле, но вы всегда можете
запросить его или установить его в зависимости от файла.
Первой альтернативой является ufull, используемая для установки
подсказки в виде полного имени узла uucp в локальной системе. Вы выби-
раете такую подсказку, если используете несколько машин и для доступа
к одной машине применяете другую. Отличительная подсказка напоминает
вам, какой машиной вы пользуетесь. Отметим, что подсказка имеет одина-
ковое число символов и для короткой строки, и для длинной. Если же вам
нужно имя узла uucp, но не нужна длинная строка для подсказки, вы мо-
жете выбрать ushort, что дает первые три символа имени узла. Как пока-
зано в строке 6, имя получается применением команды uuname для получе-
ния локального имени узла (опция -l). Затем это имя пропускается через
команду cut, которая вырезает символы с первого по третий. Результат
присваивается переменной подсказки.
Последняя альтернатива для тех из вас, кто имеет графические сим-
волы. Назначение в строке 7 есть греческий символ. Его можно получить
применением специальных управляющих последовательностей, которые ука-
зывают терминалам отображение специальных символов. Символы ^[ явля-
ются визуальным представлением управляющего символа в программе vi. Вы
можете получить этот символ в программе vi, набрав control-v, а затем
ESC. Последовательность ESC[12m означает, что следующий символ будет
напечатан как графический. Символ j является вашей подсказкой и прев-
ращается в графический символ, который выдается на ваш экран. Исполь-
зуя различные символы алфавита, вы можете иметь в виде вашей подсказки
почти любой графический символ. ESC[10m возвращает ваш терминал в ре-
жим обычного текста, так что все символы, печатаемые после того, как
вы набрали ESC[10m, являются нормальными.
Если вы хотите сохранить вашу пользовательскую подсказку для всех
подчиненных интерпретаторов shell, экспортируйте ее. Иначе вы получите
$ для всех интерпретаторов shell нижнего уровня.
Строка 10 присваивает переменной LOGNAME выход команды
logname(1). Команда logname - это обычная команда системы UNIX, кото-
рая печатает ваше регистрационное имя из файла /etc/passwd. Обычно эта