Как считать ввод пользователя в скриптах Bash

Как считать ввод пользователя в скриптах Bash

Рубрики:

Bash, Linux

Метки:

, , ,

Скрипт (сценарий) — это программа, которая используется для автоматического выполнения задачи. Одной из особенностей сценариев Bash является их способность принимать данные от пользователей.

В этой статье мы расскажем, как использовать ввод пользователя в скриптах Bash.

Содержание:

  1. Что такое команда read
  2. Использование команды read
    1. Получение строкового типа данных от пользователя
    2. Получение числового типа данных от пользователя
    3. Ввод значений для нескольких переменных с помощью read
  3. Выводы

Что такое команда read

Команда read используется в скриптах для чтения данных от пользователя. Она запрашивает ввод у пользователя, а затем сохраняет ответ для последующей его обработки.

Синтаксис этой команды имеет следующий вид:

 

Где:

  • [options] — опции, которые используются для изменения поведения команды;
  • variable — название переменной, в которой будет храниться вводимая информация (переменная по умолчанию — $REPLY).

Использование команды read

В этом разделе статьи мы на примере трех скриптов покажем Вам, как использовать команду read.

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

Для примера создадим сценарий, который будет запрашивать у пользователя информацию и выдавать ответы на ее основе:

 

code string data type

Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.

В этом коде команда:

  • echo "Do you like programming? (y/n)" — выводит в терминал вопрос Do you like programming? (y/n);
  • read — считывает строку текста от пользователя и сохраняет ее в переменной по умолчанию $REPLY;
  • echo "What is your favorite programming language?" — выводит в терминал вопрос What is your favorite programming language?;
  • read lang — считывает введенные пользователем данные и сохраняет их в переменной lang;
  • read -p "Do you like Bash Programming?(Yes/No)" answer — считывает ответ пользователя и сохраняет его в переменной answer (опция -p используется для вывода сообщения Do you like Bash Programming?(Yes/No), по сути заменяя команду echo).

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

 

first script run

Получение числового типа данных от пользователя

Теперь давайте напишем скрипт, который будет предлагать пользователю ввести номер билета и на основе его ответа выведет определенное сообщение:

 

code integer data type

Читайте также: Изучение базового написания скриптов оболочки (Shell Scripting) и файловой системы Linux, устранение неполадок — LFCS часть 10.

В этом скрипте мы просим пользователя ввести число от 1000 до 9999. Если он печатает:

  • 7823 — скрипт выводит сообщение You won the first prize.;
  • 3489 — скрипт выводит сообщение You won the second prize.;
  • 5634 — скрипт выводит сообщение You won the third prize.;
  • любое другое число — скрипт выводит сообщение Try again..

Для примера запустим наш скрипт при помощи команды:

 

second script run

Ввод значений для нескольких переменных с помощью read

В предыдущих примерах пользователь мог передавать только одно значение для одной переменной. Тем не менее, существует возможность присвоить значения сразу для нескольких переменных. Разберем такую ситуацию на примере следующего скрипта:

 

read several variables

Читайте также: Tcl для Cisco IOS: примеры скриптов для автоматизации настроек.

В этом скрипте команда:

  • read -p "ID, Batch, CGPA: " id batch cgpa — присваивает значения трем отдельным переменным id, batch и cgpa (пользователь должен ввести свои данные через пробелы);
  • echo "ID: $id" — выводит на экран значение переменной id;
  • echo "Batch: $batch" — отображает значение, хранящееся в переменной batch;
  • echo "CGPA: $cgpa" — выводит в терминал значение переменной cgpa;

Запустим скрипт, введя в терминале:

 

third script run

Выводы

На примере трех сценариев Bash мы показали Вам, как использовать команду read для считывания ввода пользователя. Благодаря полученным знаниям Вы научитесь создавать интерактивные скрипты в ОС Linux.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы 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

Метки:

, , ,

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

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

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

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


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