Bash variables

Fundamentals of BASH.

BASH — Bourne-Again SHell (что может переводится как «перерожденный шел», или «Снова шел Борна(создатель sh)»), самый популярный командный интерпретатор в юниксоподобных системах, в особенности в GNU/Linux. Ниже приведу ряд встроенных команд, которые мы будем использовать для создания своих скриптов.

break выход из цикла for, while или until
continue выполнение следующей итерации цикла for, while или until
echo вывод аргументов, разделенных пробелами, на стандартное устройство вывода
exit выход из оболочки
export отмечает аргументы как переменные для передачи в дочерние процессы в среде
hash запоминает полные имена путей команд, указанных в качестве аргументов, чтобы не искать их при следующем обращении
kill посылает сигнал завершения процессу
pwd выводит текущий рабочий каталог
read читает строку из ввода оболочки и использует ее для присвоения значений указанным переменным.
return заставляет функцию оболочки выйти с указанным значением
shift перемещает позиционные параметры налево
test вычисляет условное выражение
times выводит имя пользователя и системное время, использованное оболочкой и ее потомками
trap указывает команды, которые должны выполняться при получении оболочкой сигнала
unset вызывает уничтожение переменных оболочки
wait ждет выхода из дочернего процесса и сообщает выходное состояние.

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

$DIRSTACK – содержимое вершины стека каталогов
$EDITOR – текстовый редактор по умолчанию
$EUID – Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя, в то время как…
$UID – …содержит реальный идентификатор, который устанавливается только при логине.
$FUNCNAME – имя текущей функции в скрипте.
$GROUPS – массив групп к которым принадлежит текущий пользователь
$HOME – домашний каталог пользователя
$HOSTNAME – ваш hostname
$HOSTTYPE – архитектура машины.
$LC_CTYPE – внутренняя переменная, котороя определяет кодировку символов
$OLDPWD – прежний рабочий каталог
$OSTYPE – тип ОС
$PATH – путь поиска программ
$PPID – идентификатор родительского процесса
$SECONDS – время работы скрипта(в сек.)
$# – общее количество параметров переданных скрипту
$* – все аргументы переданные скрипту(выводятся в строку)
$@ – тоже самое, что и предыдущий, но параметры выводятся в столбик
$! – PID последнего запущенного в фоне процесса
$$ – PID самого скрипта