Команда read используется для получения ввода от пользователя в сценарии Bash. Если после этой команды не используется переменная, переменная $REPLY используется для чтения входного значения. Использование подсказки является одним из них. Эта опция используется для получения ввода от пользователя с помощью подсказки, которая помогает пользователю понять, какой тип данных необходимо предоставить. В этой статье объясняются методы использования параметра подсказки для получения ввода от пользователя в Bash.
В этой части статье показаны различные варианты использования команды «read» с подсказкой.
Создайте файл Bash со следующим сценарием, который принимает первый ввод без подсказки в переменную по умолчанию, которая равна $REPLY, второй ввод без подсказки в переменную $lang и третий ввод с подсказкой в переменной $REPLY$. Затем сообщения печатаются на основе введенных значений. Если значение переменной $REPLY равно «y», «Y» или «Yes», печатается сообщение «Вам нравится программировать». Если значение переменной $lang не пусто, выводится значение $lang. Если значение переменной $answer равно «y», «Y» или «Yes», сообщение «Ваш любимый язык» печатается со значением $answer.
#!/bin/bash echo "Вам нравится программировать? (y/n)" #Read input in the default variable read echo "Ваш любимый язык программирования?" #Read input in the assigned variable read lang #Read input using a prompt message read -p "Вы любите программировать в Bash?(Yes/No)" answer echo echo "***Output based on the input values:***" echo #Output based on the first input if [[ $REPLY == "y" || $REPLY == "Y" || $REPLY == "Yes" ]]; then echo "Вы любите программировать." fi #Output based on the second input if [ $lang != "" ]; then echo "Ваш любимый язык $lang" fi #Output based on the third input if [[ $answer == "y" || $answer == "Y" || $answer == "Yes" ]]; then echo "Вам нравиться программировать в bash." fi
Следующий вывод появляется после выполнения скрипта с первым входным значением «y», вторым входным значением «PHP» и третьим входным значением «y».
Создайте файл Bash со следующим сценарием, который получает числовое значение от пользователя с помощью подсказки в переменной $number. Затем значение сравнивается с конкретными числами, чтобы определить, совпадает ли число с каким-либо билетом или нет, и печатает сообщение на основе возвращаемого значения оператора «если».
#!/bin/bash #Take a numeric input read -p "Enter your ticket number [1000-9999]:" number #Print output based on the input if [[ $number -eq "7823" ]]; then echo "Вы выиграли первый приз." elif [[ $number -eq "3489" ]]; then echo "Вы выиграли второй приз." elif [[ $number -eq "5634" ]]; then echo "Вы выиграли третий приз." else echo "Попробуйте еще раз." fi
Скрипт выполняется два раза. Сообщение «Попробуйте еще раз» печатается, когда число 6734 принимается в качестве входного значения. Сообщение «Вы выиграли второй приз» печатается, когда число 3489 принимается в качестве входного значения, потому что оно соответствует второму условию «else».
В предыдущих двух примерах один ввод осуществляется с использованием каждой команды «read». Но вы можете использовать несколько входных данных в Bash, используя команду «read». В этом случае вы должны передать несколько переменных с пробелом при использовании нескольких входных данных с помощью команды «чтение». Создайте файл Bash со следующим сценарием, который принимает три входных данных в трех переменных — $id, $batch и $cgpa. Значения этих переменных печатаются позже.
#!/bin/bash echo "=====Enter student information with space=====" #Take multiple input values using a prompt message read -p "ID, Batch, CGPA: " id batch cgpa echo echo "***Output based on the input values:***" #Print the input values echo "ID: $id" echo "Batch: $batch" echo "CGPA: $cgpa"
После выполнения скрипта со значениями id=’01156788′, batch=42 и cgpa=3,97 появляется следующий вывод:
Использование подсказки с командой «чтение» в сценарии Bash показано в этом руководстве на нескольких примерах. Преимущества использования подсказки с командой «чтение» становятся очевидными после прочтения этого руководства.