Шрифт:
Таблица 14,1. Различные способы присваивания значений переменным
Имя переменной = значение
Значение переменной присваивается переменной имя_переменной
Имя переменной + значение
Значение переменной присваивается переменной
имя переменной, если оно установлено
Имя_переменной:?значение
На экран выводится сообщение об ошибке, если не установлена переменная имя_переменной
Имя переменной? значение
На экран выводится сообщение о системной ошибке, если не установлена переменная имя_переменной
Имя_переменной:=значение
Значение переменной присваивается переменной имя_переменной, если она не установлена
Имя переменной: — значение
Как и выше, но значение переменной имя_переменной не присваивается; оно может быть получено подстановкой
14.2.1. Отображение значения переменной
Чтобы отобразить значение отдельной переменной, достаточно применить команду echo и предварить имя переменной знаком $. Рассмотрим несколько примеров.
$ GREAT_PICTURE="die hard"
$ echo ${GREAT_PICTURE}
die hard
$ DOLLAR=99
$ echo $(DOLLAR)
99
$ LAST_FILE=ZLPSO.txt
$ echo ${LAST_FILE}
ZLPSO.txt
Переменные можно также комбинировать. Ниже переменной error_msg присваивается сообщение об ошибке, в котором используется значение переменной среды LOGNAME.
$ ERROR_MSG="Sorry this file does not exist user $LOGNAME"
$ echo ${ERROR_MSG}
Sorry this file does not exist user dave
В приведенном выше примере интерпретатор shell сначала выводит текст, затем рассматривает переменную $LOGNAME и отображает ее значение.
14.2.2. Удаление значения переменной
Чтобы удалить значение переменной, достаточно применить команду unset: unset имя_переменной
$ PC=enterprise
$ echo ${РС}
enterprise
$ unset PC
$ echo ${PC)
$
14.2.3. Отображение значений всех переменных интерпретатора shell
Чтобы просмотреть значения всех переменных интерпретатора shell, достаточно воспользоваться командой set.
$ set
PWD=/root
SHELL=/bin/sh
SHLVL=1
TERM=vt100
UID=7
USER=dave
dollar=99
great_picture=die hard
last_file=ZLPSO.txt
Вывод команды set может быть довольно обширен; при его изучении можно заметить, что интерпретатор shell значительно облегчил работу в среде.
14.2.4. Объединение значений переменных
Чтобы объединить значения переменных, достаточно последовательно расположить переменные:
echo ${имя_переменной}${имя_переменной}. . ,
$ FIRST="Bruce "
$ SURNAME=Willis
$ echo ${FIRST}${SURNAME}
Bruce Willis
14.2.5. Проверка на наличие значения переменной (подстановка)
Допустим, что нужно проверить, была ли установлена либо инициализирована переменная. Если это не так, можно тут же воспользоваться другим значением. Формат используемой в этом случае команды будет следующий:
${переменная: — значение}
Если переменная установлена, она применяется. Если переменная не установлена, вместо нее используется значение, например:
$ COLOUR=blue
$ echo "The sky is ${COLOUR:=grey} today"
The sky is blue today
Переменная colour имеет значение blue. Когда команда echo выводит на экран значение переменной colour, выполняется проверка, была ли установлена переменная ранее. Если переменная установлена, используется это значение. Выполним сброс значения переменной и рассмотрим результат.
$ COLOUR=blue
$ unset COLOUR
$ echo "The sky is ${COLOUR:=grey} today"
The sky is grey today