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 самого скрипта