русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Environment и атрибуты BASH


Дата добавления: 2014-11-27; просмотров: 1043; Нарушение авторских прав


Environment - это массив переменных, который наследуют вызываемые BASH программы. Это не все переменные, а только те, которые унаследовал сам BASH, и те созданные в BASH переменные, которым был присвоен признак "экспортируемых", либо принадлежащих исполняемой программе. К примеру, вывод даты, с применением английского языка системных сообщений, можно сделать так:

bash LANG=C date

где LANG - переменная, отвечающая за язык сообщений.

Атрибуты BASH, или флаги, включают особые режимы функционирования баша устанавливаются командой set.

Команда export и используется добавления переменных к environment. Переменные, созданные в BASH, не входят автоматически в environment. Однако это можно изменить с помощью команды set.

Экспортировать можно как переменные, так и функции (-f). В принципе, команда export не нужна, так как вместо нее можно использовать declare -x.

Чтобы изъять переменную из environment, нужно использовать

export -n var

 

Командыdeclare, typeset. typeset -- устаревшее, но разрешенное название declare. Используйте это название, если хотите обеспечить с совместимоть с Korn shell. Без аргументов выводит значения всех переменных. Если вызвана таким образом из скрипта, ведет себя довольно странно: сначала выводит текст скрипта, предшествующий команде set, затем все переменные, а затем (?) текст скрипта, следующий за командой.

Если нет аргументов, но указаны опции, выводит определения переменных, имеющих такие опции, а именно:

-a – массивы;

-f – функции;

-i – целые числа;

-r – только для чтения;

-x – экспортируемые.

Если есть аргументы, то создаются переменные с указанными опциями или изменяются опции существующих. Если опция указана со знаком " +" вместо "-", она удаляется. Переменным попутно можно присвоить значения. Пример:



declare -irx MAGIC_NUMBER=666

создает переменную MAGIC_NUMBER, которую нельзя изменять, которая всегда будет рассматриваться как целое число, и которая автоматически добавляется к environment , как если бы была выполнена команда export. Кроме того, переменной присваивается значение.

Экспортировать и делать только для чтения можно не только переменные, но и функции (-f).

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

Опция опция -p показывает атрибуты переменной или всех переменных, если переменная не указана.

declare -r

выведет:

declare -ri EUID="42"

declare -ri PPID="1"

declare -ri UID="42",

однако, просто declare выведет переменные без указания их признаков. Зато:

export -p

работает так, как можно было бы ожидать от declare –p.

Команда readonly. Делает переменную или функцию (-f) read only или выводит список таких переменных (-p) . Аналогичную вещь делает 'declare -r', так что эта команда лишняя.

Команда unset. Отменяет определение переменной или функции (-f).

Команда set. Опции, переданные set, устанавливают атрибуты самого BASH. Если вместо "-" перед атрибутом идет "+", атрибут сбрасывается. Если есть аргументы, set присваивает их позиционным параметрам $1, $2 и т. д.

Без опций и аргументов выводит все переменные. Если вызвана таким образом из скрипта, ведет себя довольно странно, как и команда declare. Атрибуты могут задаваться в короткой или длинной форме. В длинной форме ? через опцию -o. Опция -o без параметров выводит значения всех атрибутов. Конструкция:

set -o

выведет:

allexport on

braceexpand on

emacs on

errexit off

histexpand on

ignoreeof off

interactive-comments on

monitor off

noclobber off

noexec off

noglob off

nohash off

nounset off

physical off

posix off

privileged off

verbose off

vi off

xtrace off

 

Интересные атрибуты:

· emacs (нет короткого названия) - расширенные возможности редактирования. В интерактивных шеллах установлена по умолчанию;

· vi (нет короткого названия) - возможности редактирования, аналогичные командам vi;

· a (allexport) - автоматический экспорт всех переменных;

· e (errexit) - прекращать работу, если команда, не входящая в группу, или группа команд возвратила ненулевое значение. При прекращении работы не выдается никаких сообщений;

· f (noglob) - запрещает обрабатывать маски (*, ? и т. д.);

· h (hashall) - запоминать пути к выполненным командам (по умолчанию);

· n (noexec) - не выполнять команды, только проверить их правильность;

· v (verbose) - аналог echo on в DOS;

· x (xtrace) - расширенный аналог verbose;

· n (nounset) - рассматривать использование неопределенной переменной как ошибку;

· C (noclobber) - см. про переменную noclobber;

· P (physical) - при смене текущей директории на линк, делать именем текущей директории не имя линка, а имя физической директории;

· "-" - если за этим ничего не следует, unset позиционные параметры.



<== предыдущая лекция | следующая лекция ==>
Команды из набора SHELL-UTILS | Встроенные команды (SHELL BUILTINS)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.695 сек.