Bash.Переменные и аргументы
https://t.me/HotCheatSheetЧасто приходится искать, как изменить приглашение командной строки, либо пути поиска команды в оболочке. На помощь и приходят переменные, которые и будут рассмотрены в данной статье, а также аргументы и небольшой мануал по отдельным моментам работы.
Файловые дескрипторы:
0 — stdin
1 — stdout
2 — stderr
Статус выхода:
0 — удачно
!=0 — т.е. отличное от нуля, ошибка
Дополнительно:
$(команда) — выполнить команду(например, когда нужно присвоить значение команды переменной)
`команда` — выполнить команду (альтернатива)
команда & — запустить команду в фоновом режиме
Аргументы:
!! — запустить последнюю команду
!$ — выводит последний аргумент предыдущей команды
!-<Номер> — запустить команду под данным номером
!<Строка> — запустить последнюю команду с данной строкой
$$ — pid текущей оболочки
$! — pid последнего процесса в фоновом режиме
$? — код возврата последнего процесса
$<Номер> — номер параметра, переданного скрипту ($0 - последний запущенный скрипт)
$# — количество аргументов командной строки
$* — все аргументы в виде одной строки
$@ — все аргументы в видел отдельных строк
$- — список флагов, переданных сценарию
$_ — содержит последний аргумент предыдущей команды
Переменные:
$BASH — путь к исполняемому файлу bash
$BASH_VERSION — версия Bash, установленного в системе
$DIRSTACK — содержимое вершины стека каталогов
$EDITOR — заданный по умолчанию редактор
$EUID — «эффективный» идентификационный номер пользователя (Effective User ID)
$UID — содержит реальный идентификатор, который устанавливается только при логине
$FUNCNAME — имя текущей функции
$GLOBIGNORE — перечень шаблонных символов, которые будут проигнорированы при выполнении подстановки имён файлов (globbing)
$GROUPS — группы, к которым принадлежит текущий пользователь
$HOME — домашний каталог пользователя
$HOSTNAME — сетевое имя хоста
$HOSTTYPE — тип машины (идентифицирует аппаратную архитектуру)
$IFS — разделитель полей во вводимой строке
$LC_COLLATE — задаёт порядок сортировки символов, в операциях подстановки имён файлов и в поиске по шаблону
$LC_CTYPE — определяет кодировку символов
$LINENO — Номер строки исполняемого сценария
$MACHTYPE — аппаратная архитектура
$OLDPWD —прежний рабочий каталог
$OSTYPE — тип операционной системы
$PATH — путь поиска (включает в себя каталоги /usr/bin, /usr/local/bin, /usr/local/sbin и т. д.)
$PIPESTATUS — Код возврата канала (конвейера)
$PPID — (идентификатор) родительского процесса
$PS1 — приглашение командной строки
$PS2 — вторичное приглашение командной строки, выводится тогда, когда от пользователя ожидается дополнительный ввод. Обычно отображается как «>»
$PS3 — третичное приглашение, выводится, когда пользователь должен сделать выбор в операторе select
$PS4 — приглашение четвёртого уровня, выводится (в изменённом виде) в начале каждой строки отладочного вывода тогда, когда сценарий вызывается с ключом -x. Обычно отображается как «+», «++» и т. д.
$PWD — рабочий (текущий) каталог
$REPLY — переменная по умолчанию, куда записывается ввод пользователя, выполненный с помощью команды read
$SECONDS — время работы сценария (в секундах)
$SHELLOPTS — список допустимых опций интерпретатора (доступна только для чтения)
$SHLVL — уровень вложенности shell