Специальные переменные в скриптах Bash

Специальные переменные в скриптах Bash

Рубрики:

Bash, Linux

Метки:

Bash, linux

Специальные переменные Bash являются предустановленными. В качестве своих значений эти переменные содержат информацию об окружении оболочки, выполнении команд и других данных об ОС Linux.

В этой статье мы расскажем, как использовать специальные переменные Bash в Linux.

Содержание:

  1. Специальные переменные Bash
  2. Вывод на экран названия скрипта
  3. Вывод количества аргументов, переданных сценарию Bash
  4. Отображение значений переданных аргументов скрипту
  5. Запись значений аргументов в специальные переменные Bash
  6. Получение статуса последней выполненной команды
  7. Вывод на экран PID последней выполненной фоновой команды
  8. Вывод в терминал PID текущей оболочки Bash
  9. Просмотр опций текущей оболочки Bash
  10. Выводы

Специальные переменные Bash

Далее в примерах мы покажем Вам, как применять следующие специальные переменные Bash:

  • $0 — выводит на экран название скрипта;
  • $$ — отображает идентификатор процесса (PID) текущей оболочки;
  • $# — отображает количество аргументов командной строки, переданных скрипту;
  • $* и $@ — позволяют вывести в терминал список переданных скрипту аргументов;
  • $? — выводит на экран статус выхода из последней выполненной команды;
  • $! — позволяет узнать идентификатор процесса (PID) последней выполненной фоновой команды;
  • $1$9 — сохраняют в качестве значений первые 9 аргументов, переданных скрипту;
  • $- — выводит в терминал текущий набор параметров в оболочке.

Вывод на экран названия скрипта

Чтобы отобразить в терминале название выполняемого скрипта, используйте команду echo с переменной #0. Например:

 

get script name

Читайте также: Как использовать переменные shell в AWK.

Вывод количества аргументов, переданных сценарию Bash

С помощью специальной переменной $# Вы можете узнать количество переданных скрипту аргументов. Для примера напишем следующий скрипт:

 

Запустим данный скрипт несколько раз с разным количеством переданных аргументов.

get number of arguments

Отображение значений переданных аргументов скрипту

Чтобы вывести на экран значения аргументов, переданных скрипту, воспользуйтесь циклом for и специальной переменной $*. Например:

 

get string of arguments

На скриншоте видно, что значения аргументов выводятся в одну строку через пробел. Если Вам нужно, чтобы значения располагались в столбик, замените переменную $* на $@:

 

get column of arguments

Читайте также: Основные встроенные переменные AWK.

Запись значений аргументов в специальные переменные Bash

В Bash доступны девять специальных переменных ($1$9), которые по умолчанию содержат значения аргументов, переданных скрипту. Давайте напишем скрипт, который выводит на экран значения первых четырех аргументов:

 

save args in variables

Получение статуса последней выполненной команды

Каждая выполненная команда в оболочке Bash завершается с одним из двух статусов:

  • 0 — успешное завершение;
  • 1 — неудачное завершение;

Чтобы узнать, с каким статусом завершилась последняя выполненная команда, воспользуйтесь переменной $?:

 

last process status

Важно: Вы также можете получить статус 127, который указывает на код Сommand could not be found (Команда не найдена).

Вывод на экран PID последней выполненной фоновой команды

Чтобы узнать идентификатор последней выполненной фоновой команды, можно воспользоваться специальной переменной $!. Например:

 

last process pid

Вывод в терминал PID текущей оболочки Bash

Оболочка Bash, также как и все процессы в Linux, имеет свой идентификатор. Чтобы вывести на экран его значение, примените команду echo с переменной $$:

 

current shell pid

Читайте также: Переменные, числовые выражения и операторы присваивания в AWK.

Просмотр опций текущей оболочки Bash

Переменная $- содержит список опций текущей оболочки Bash:

 

current shell options

В нашей ОС доступны такие опции:

  • 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 с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Bash, Linux

Метки:

Bash, linux

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики