Специальные переменные Bash являются предустановленными. В качестве своих значений эти переменные содержат информацию об окружении оболочки, выполнении команд и других данных об ОС Linux.
В этой статье мы расскажем, как использовать специальные переменные Bash в Linux.
Содержание:
- Специальные переменные Bash
- Вывод на экран названия скрипта
- Вывод количества аргументов, переданных сценарию Bash
- Отображение значений переданных аргументов скрипту
- Запись значений аргументов в специальные переменные Bash
- Получение статуса последней выполненной команды
- Вывод на экран PID последней выполненной фоновой команды
- Вывод в терминал PID текущей оболочки Bash
- Просмотр опций текущей оболочки Bash
- Выводы
Специальные переменные Bash
Далее в примерах мы покажем Вам, как применять следующие специальные переменные Bash:
$0— выводит на экран название скрипта;$$— отображает идентификатор процесса (PID) текущей оболочки;$#— отображает количество аргументов командной строки, переданных скрипту;$*и$@— позволяют вывести в терминал список переданных скрипту аргументов;$?— выводит на экран статус выхода из последней выполненной команды;$!— позволяет узнать идентификатор процесса (PID) последней выполненной фоновой команды;$1—$9— сохраняют в качестве значений первые 9 аргументов, переданных скрипту;$-— выводит в терминал текущий набор параметров в оболочке.
Вывод на экран названия скрипта
Чтобы отобразить в терминале название выполняемого скрипта, используйте команду echo с переменной #0. Например:
Читайте также: Как использовать переменные shell в AWK.
Вывод количества аргументов, переданных сценарию Bash
С помощью специальной переменной $# Вы можете узнать количество переданных скрипту аргументов. Для примера напишем следующий скрипт:
Запустим данный скрипт несколько раз с разным количеством переданных аргументов.
Отображение значений переданных аргументов скрипту
Чтобы вывести на экран значения аргументов, переданных скрипту, воспользуйтесь циклом for и специальной переменной $*. Например:
На скриншоте видно, что значения аргументов выводятся в одну строку через пробел. Если Вам нужно, чтобы значения располагались в столбик, замените переменную $* на $@:
Читайте также: Основные встроенные переменные AWK.
Запись значений аргументов в специальные переменные Bash
В Bash доступны девять специальных переменных ($1—$9), которые по умолчанию содержат значения аргументов, переданных скрипту. Давайте напишем скрипт, который выводит на экран значения первых четырех аргументов:
Получение статуса последней выполненной команды
Каждая выполненная команда в оболочке Bash завершается с одним из двух статусов:
0— успешное завершение;1— неудачное завершение;
Чтобы узнать, с каким статусом завершилась последняя выполненная команда, воспользуйтесь переменной $?:
Важно: Вы также можете получить статус 127, который указывает на код Сommand could not be found (Команда не найдена).
Вывод на экран PID последней выполненной фоновой команды
Чтобы узнать идентификатор последней выполненной фоновой команды, можно воспользоваться специальной переменной $!. Например:
Вывод в терминал PID текущей оболочки Bash
Оболочка Bash, также как и все процессы в Linux, имеет свой идентификатор. Чтобы вывести на экран его значение, примените команду echo с переменной $$:
Читайте также: Переменные, числовые выражения и операторы присваивания в AWK.
Просмотр опций текущей оболочки Bash
Переменная $- содержит список опций текущей оболочки Bash:
В нашей ОС доступны такие опции:
h— указывает оболочке хранить в хэш-таблице все найденные в$PATHпрограммы;i— позволяет пользователю взаимодействовать с оболочкой в интерактивном режиме через командную строку, а не только через скрипты;m— позволяет управлять выполнением задач в фоновом режиме, ставить их на паузу, возобновлять и так далее;B— означает, что Bash запущен в режиме POSIX;H— указывает на использование хэш-таблицы при поиске файлов;s— означает, что Bash является оболочкой сопрограммы (subshell).
Выводы
Теперь Вы знаете, какие есть специальные переменные Bash, и какую информацию они позволяют узнать о скриптах, командной оболочке, процессах и так далее. Мы также показали Вам несколько сценариев Bash, в которых используются эти переменные.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
































