Скрипт (сценарий) — это программа, которая используется для автоматического выполнения задачи. Одной из особенностей сценариев Bash является их способность принимать данные от пользователей.
В этой статье мы расскажем, как использовать ввод пользователя в скриптах Bash.
Содержание:
Что такое команда read
Команда read
используется в скриптах для чтения данных от пользователя. Она запрашивает ввод у пользователя, а затем сохраняет ответ для последующей его обработки.
Синтаксис этой команды имеет следующий вид:
Где:
[options]
— опции, которые используются для изменения поведения команды;variable
— название переменной, в которой будет храниться вводимая информация (переменная по умолчанию —$REPLY
).
Использование команды read
В этом разделе статьи мы на примере трех скриптов покажем Вам, как использовать команду read
.
Получение строкового типа данных от пользователя
Для примера создадим сценарий, который будет запрашивать у пользователя информацию и выдавать ответы на ее основе:
Читайте также: 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
).
Теперь запустим этот скрипт, введя в терминале:
Получение числового типа данных от пользователя
Теперь давайте напишем скрипт, который будет предлагать пользователю ввести номер билета и на основе его ответа выведет определенное сообщение:
Читайте также: Изучение базового написания скриптов оболочки (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.
.
Для примера запустим наш скрипт при помощи команды:
Ввод значений для нескольких переменных с помощью read
В предыдущих примерах пользователь мог передавать только одно значение для одной переменной. Тем не менее, существует возможность присвоить значения сразу для нескольких переменных. Разберем такую ситуацию на примере следующего скрипта:
Читайте также: 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
;
Запустим скрипт, введя в терминале:
Выводы
На примере трех сценариев Bash мы показали Вам, как использовать команду read
для считывания ввода пользователя. Благодаря полученным знаниям Вы научитесь создавать интерактивные скрипты в ОС Linux.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы 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.