Отправляет email-рассылки с помощью сервиса Sendsay

Программирование и др.

  Все выпуски  

Программирование в Linux с нуля - Выпуск 12


Информационный Канал Subscribe.Ru

Рассылка проекта Lindevel.Ru

Программирование в Linux с нуля. Выпуск 12

1. Предисловие

Здравствуйте, уважаемые подписчики! Этот выпуск рассылки открывает новую тему "Программное окружение". Я долго думал и решил разбить материал на две части. Сегодня, вопреки традиции, мы отдохнем от программирования и займемся командными оболочками.

Рад сообщить вам, что на сайте Lindevel.Ru появилась возможность создания коллективных проектов по разработке программного обеспечения для Linux. Если у вас есть идеи и желание программировать - присоединяйтесь. И помните: лучший способ научиться программировать - это программировать. Подробности на сайте в разделе "Проекты".

Если возникнут вопросы, задавайте их в форуме. Справочная информация и электронные учебники доступны в файловом архиве на Lindevel.Ru. Сайт постоянно пополняется новыми материалами и программным обеспечением.

2. Теория

2.1. Программное окружение.

Большинство программ в Linux запускаются с аргументами. Таким образом мы настраиваем поведение приложения для конкретных нужд. Однако существует целый ряд специфичных параметров, характерных для конкретного пользователя или для конкретной системы, которые необходимы подавляющему большинству приложений. К таким параметрам относятся: текущий каталог, домашний каталог пользователя, имя пользователя, тип терминала и многое другое. Весь набор таких параметров называют программным окружением или средой выполнения (environment).

Окружение представляет собой набор пар ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ. Такие переменные называют переменными окружения или переменными среды (environment variables). Чтобы вывести на экран все окружение, используют команду printenv. Переменная USER, например, содержит регистрационное имя пользователя; в переменной HOME хранится путь к домашнему каталогу пользователя, а в переменной PWD находится текущий каталог. Значениями переменных окружения являются строковые константы.

Каждый новый процесс в системе наследует от своего родителя среду выполнения и может модифицировать ее по мере необходимости при помощи специальных функций. Но с командными оболочками дело обстоит сложнее. Рассмотрим три самые популярные оболочки: Bourne (bsh, bash), C-shell (csh, tcsh) и Korn (ksh). Каждая из них, являясь интерпретатором собственного командного языка, поддерживает использование локальных переменных. И здесь их сходства заканчиваются. Оболочки Bourne и Korn поддерживают команду export, которая экспортирует в программную среду какую-нибудь свою локальную переменную. В оболочках языка C (C-shell) локальные переменные и переменные окружения почти никак не связаны. Для создания первых используется команда set, а для работы с переменными окружения вызывают команду setenv.

Рассмотрим для наглядности маленький пример того, как наиболее популярная в Linux оболочка bash (Bourne-Again SHell) работает с переменными.


$ MYVAR=myvar-value
$ echo $MYVAR
myvar-value
$ printenv MYVAR
$ export MYVAR
$ printenv MYVAR
myvar-value
$

В приведенном примере хорошо видно, что для извлечения значения локальной переменной оболочки bash используется знак "доллар". Для получения дополнительной информации, читайте документацию к своей оболочке.

Вообще говоря, для переменных окружения действуют свои правила.

  • Переменные окружения принято обозначать заглавными буквами латинского алфавита.
  • Имя переменной окружения может содержать символы подчеркивания и цифры, но цифра не может быть первой.
  • Значением переменной окружения является строковая константа.

Строки, являющиеся значениями переменных окружения интерпретируются по-разному. Ярким примером тому является переменная PATH, предназначенная для объявления каталогов с программами для быстрого вызова (без указания абсолютного пути к исполняемому файлу). Если бы в переменной PATH отсутствовал каталог /bin, то команду ls приходилось бы вызвать командой /bin/ls. Имена каталогов отделяются друг от друга в переменной PATH двоеточием. Используя переменные окружения в своих программах, необходимо точно знать, как интерпретируются их значения.

Во всех известных оболочках для смены текущего каталога используется внутренняя команда cd. Подумайте, какой еще командой можно сменить текущий каталог.

В следующем выпуске рассылки мы научимся читать и модифицировать окружение в своих программах, а также узнаем нечто новое о функциях семейства exec().

До новых встреч.
Николай.
mailto: nnivanov@mail.ru

Новости сайта Lindevel.Ru

  • Организована работа с коллективными проектами по созданию программного обеспечения
  • Открыта серия статей "Секреты указателей языка C". Доступна первая часть.
  • В форуме открыт новый раздел "Новости".

Рассылки Subscribe.Ru
*nix project - новости из мира unix-систем! (ежедневная)

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.linuxp
Отписаться
Вспомнить пароль

В избранное