Вход/Регистрация
Linux-сервер своими руками
вернуться

Колисниченко Денис Николаевич

Шрифт:

echo ${array[@]}

Особое значение имеют переменные окружения. У каждого процесса есть своя среда — множество доступных ему переменных. Обыкновенные переменные доступны только из локального процесса. Чтобы использовать их значения в порождаемых процессах, нужно использовать встроенную команду export. После того, как вы экспортируете переменные, они будут доступны всем порожденным процессам.

Выражение export:

export имя

export имя=значение

export имя имя имя …

export имя=значение имя имя=значение…

Как видите, можно экспортировать уже инициализированную переменную (которой уже присвоено значение), а можно выполнить инициализацию переменной непосредственно при экспорте. Экспортировать можно как одну переменную, так и целый список.

Для деактивизации переменной используется команда unset: unset имя

Каждому процессу доступны переменные оболочки, приведенные в табл. 19.37.

Переменные оболочки Таблица 19.37

Название переменной Значение
PWD Текущий каталог
UID Идентификатор пользователя, запустившего сценарий
REPLY Последняя строка, введенная с помощью команды read
RANDOM Случайное число в диапазоне от 0 до 32767
SECONDS Число секунд, прошедшее с момента запуска оболочки
IPS (Internal Filed Separator) Внутренний разделитель полей. Используется синтаксическим анализатором и командой read для разделения строчки на слова. По умолчанию его значение равно " \t\n", где: « » — пробел; «\t» — символ табуляции; ,«\n» — символ новой строки
HOME Домашний каталог
PATH Путь вызова
LOGNAME Имя пользователя, которое использовалось для входа в систему
MAIL Имя файла, в который поступает электронная почта
SHELL Имя интерпретатора команд
TERM Тип терминала пользователя

Пример.

echo "$НОМЕ"

19.7.5. Подстановка команд и арифметических выражений

В гл. 13 (п. 13.5) мы уже сталкивались с подстановкой команд. Тогда переменной DT присваивался результат выполнения команды date:

DT=`date`

Как я уже писал, при подстановке команд нужно использовать обратные одинарные кавычки (они расположены под символом тильды на клавиатуре). Подставлять можно не только одну команду, а целые списки команд:

USERS=`who | wd –l`

UP=`date; uptime`

В первом случае мы получим количество пользователей работающих в системе, а во втором — последовательно записанные результаты выполнения команд date и uptime.

Подставлять результаты выполнения можно не только в переменные, а и в другие команды, например:

grep `id –un` /etc/passwd

Данная команда ищет в файле /etc/passwd вхождение результата выполнения команды id –un

Подстановка арифметических выражений осуществляется с помощью конструкции $(( выражение )) Например:

А = $(( (10+51/2 ))

echo $A

При этом на экране вы увидите число 7, а не 7.5, потому что используется целочисленное вычисление. Пример. Количество часов, прошедшее с момента запуска оболочки: 

hrs = $(( $SECONDS/3600 ))

19.7.6. Управляющие структуры и циклы

К управляющим структурам относятся:

• Конструкция if-fi.

• Конструкция case-esac.

Конструкция if-fi

Общий синтаксис конструкции if-fi:

if список1 then

 список2

elif

 список3

then

 список4

else

 список3

fi

Конструкция if-fi работает так же, как и в других языках программирования. Если список1 (условие) истинный, выполняется список1, иначе выполняется список3 и проверяется его истинность и т.д. Допускается неограниченная вложенность операторов if. Например:

if uuencode myfile myfile > myfile.uu; then

 echo "Успешное конвертирование";

else

 echo "Ошибка";

fi

Можно использовать сокращенный вариант:

if список1 then

 список2

fi

Например:

if [ $? –ne 0 ]; then echo "Ошибка. См. файл протокола"; fi;

Вместо списка команд удобно использовать команду test или выражение [условие]. Например, следующие выражения аналогичны:

  • Читать дальше
  • 1
  • ...
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: