Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_указ_по_СПО ч 1 Знакомство с Linux.doc
Скачиваний:
18
Добавлен:
11.04.2015
Размер:
325.12 Кб
Скачать

Переменные окружения

Переменные окружения – системные переменные, описывающие параметры среды, в которой исполняются пользовательские процессы. Имеют строковый тип и записываются прописными буквами. Переменные окружения известны оболочке и могут ею использоваться. Наиболее употребительные переменные:

Имя

Описание

Возможные значения

HOME

домашний каталог пользователя

/home/’logname2

PATH

поисковый путь

/bin:/etc:/usr/bin:.

MAIL

имя почтового ящика

/usr/spool/mail/’logname’

LOGNAME

имя пользователя

‘logname’

SHELL

интерпретатор сеанса

bash

TERM

имя терминала

ansi

PS1

первичное приглашение shell

#

PS2

вторичное приглашение shell

>

Для того чтобы простую переменную сделать переменной окружения, надо выполнить команду export:

...~> export имя1

Для сокращения записи пользователь может определить новые переменные прямо в команде export:

...~>export имя1=строка1

Вывести на экран значения всех переменных окружения можно с помощью команды export без аргументов. Поскольку переменных много, то рекомендуется использовать конвейер: export | more или export | less.

Если текущий каталог (.) и каталог личных программ ./bin пользователя (например, home/alla/bin) не включены в путь поиска, их можно добавить к уже заданному пути поиска. В оболочке bash это делается так:

...~>export PATH=.:~/bin:$PATH

Для того чтобы убедиться в правильности выполнения команды полезно вывести новое значение PATH:

...~>echo $PATH

.:/home/alla/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin

Если необходимо добавить вышеуказанные каталоги в конец пути, то следует ввести команду:

...~>export PATH=$PATH:.:~/bin

Внутренние переменные

Значения внутренних переменных устанавливаются самим интерпретатором. Вне контекста получения значения переменные этого типа смысла не имеют. Эти переменные редко используются в командной строке, основная область их применения – скрипты.

$0

имя запущенного скрипта

$1, $2, . . .

позиционные параметры скрипта

$#

число позиционных параметров скрипта

$?

код возврата последнего выполненного процесса

$$

PID текущего shell

$!

PID последнего процесса, запущенного в фоновом режиме

$*

все параметры, переданные скрипту; передаются как единое слово, будучи заключенным в кавычки:

“$*” = “$1 $2 $3 . . . “

#@

все параметры, переданные скрипту; передаются как отдельные слова, заключенные в кавычки:

“$*” = “$1” “$2” “$3” . . .

Примеры:

Текст скрипта:

#!/bin/bash

echo ***MY_SCRIPT_1 $0 ***

echo $1 $2 $3 #печать трех параметров

shift #сдвиг значений аргументов на 1 позицию

echo $1 $2 $3 #

Запуск скрипта:

…~>./scr1.sh a1 a2 a3 a4

***MY_SCRIPT_1 scr1.sh ***

a1 a2 a3

a2 a3 a4

Текст скрипта:

#!/bin/bash

echo ***MY_SCRIPT_2 $0 ***

if [ $# -lt 2 ] #если число параметров меньше 2-х

then

echo usage: $0 arg1 arg2

exit 1

fi

Запуск скрипта:

…~>./scr2.sh

***MY_SCRIPT_1 scr2.sh ***

usage: scr2.sh arg1 arg2

…~>./scr2.sh a1 a2

***MY_SCRIPT_1 scr2.sh ***

Код возврата последней выполненной задачи ($?) удобно использовать в условных выражениях. По правилам успешным завершением задачи считается код возврата, равный 0, ненулевой код свидетельствует об ошибке. Код возврата скриптов генерируется с помощью команды exit n, где n – целое число. Пример:

echo ***MY_SCRIPT_3 $0 ***

# зарегистрирован ли в системе пользователь с именем alla

# проверяется файл passwd на наличие слова alla и в случае удачи grep возвращает 0

grep alla /etc/passwd

if [ $? –ne 0 ] #если код возврата последнего выполненного процесса = 0, то слово alla найдено

then

echo пользователь alla в системе зарегистрирован

exit 1

fi