"Рас Сэйдж. Приемы профессиональной работы в UNIX" - читать интересную книгу автора При использовании переменные shell являются локальными для рабо-
тающего в данный момент интерпретатора shell. Их можно передать ин- терпретаторам shell более глубокого уровня путем их "экспортирования". Следовательно, если вы создаете новый командный процессор, все ваши экспортированные переменные будут по-прежнему определены для этого ин- терпретатора shell. Исчерпывающий список переменных shell, установлен- ных по умолчанию и используемых системой, см. в приложении 1. Отметим, что в нашем примере файла настройки для каждого подката- лога первого уровня, который есть в нашем регистрационном каталоге, мы также имеем переменные shell, связанные с именем этого подкаталога. Таким образом, мы можем легко обращаться к различным областям нашего регистрационного каталога. ПОСТРОЧНЫЙ РАЗБОР ПРИМЕРА ФАЙЛА НАСТРОЙКИ Строки 3-8 делают хитрую установку главной подсказки - переменной PS1. В строке 3 инициализируется переменная, которая выбирает подсказ- ку. Значение ushort жестко закодировано в файле, но вы всегда можете запросить его или установить его в зависимости от файла. Первой альтернативой является ufull, используемая для установки подсказки в виде полного имени узла 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. Обычно эта |
|
|