Сначала ознакомьтесь с основным синтаксисом команды «читать»:
читать [option] переменнуюИспользование команды «read» означает, что вы взаимодействуете с Bash для получения информации от пользователя. Он сохраняет значение в переменной, но без «$" знак. Вы сможете лучше понять эту концепцию на примере.
Пример 1. Использование команды «read» в сценарии Bash
Чтобы изучить команду «читать» более подробно, мы создадим простой скрипт, который будет запрашивать имя пользователя. Сначала откройте любой текстовый редактор; для этого урока я использую текстовый редактор Vim из-за его множества полезных функций. Чтобы установить Vim, выполните в терминале следующую команду:
$ sudo apt install vimЗатем введите в текстовый файл следующее:
#! \ bin \ bashecho «Пожалуйста, введите свое имя»
читать имя
echo «Тебя зовут» $ name
Сохраните файл под любым именем, затем нажмите Esc и введите «: w readcom.ш.”Чтобы запустить сценарий, введите следующую команду:
$ bash readcom.шВышеупомянутый скрипт попросит пользователя написать свое имя. Команда «читать» затем сохранит введенные пользователем данные. В следующей строке будет напечатано имя, введенное пользователем.
Пример 2: Упрощение кода с помощью оператора «подсказка»
Приведенный выше пример можно дополнительно упростить с помощью символа «ПодсказкаОператор. Давайте перепишем приведенный выше пример, чтобы понять код:
#! / bin / bashпрочтите -p «Пожалуйста, введите ваше имя» имя
echo «Тебя зовут» $ name
Пример 3: Скрытие пользовательского ввода с помощью оператора «секретный / тихий»
Значок «-s»Флаг может использоваться, чтобы скрыть ввод пользователя. В следующем примере сценария Bash показано, как использовать оператор «-s»:
#! / bin / bashпрочтите -p «Пожалуйста, введите ваше имя пользователя» имя пользователя
read -s -p «Введите пароль» $ password
Пример 4: Ограничение длины символа
Значок «-п»Можно использовать для добавления ограничения на количество символов, которые пользователь может вводить.
#!/ bin / bashread -n 8 -p «Пожалуйста, введите ваше имя пользователя, не превышающее 8 символов» имя пользователя
echo «Ваше имя пользователя» $ username
С параметром «-n» пользователь по-прежнему может ввести менее восьми символов. Чтобы еще больше ограничить длину ввода, значок «-N», Который ограничивает ответ пользователя ровно восемью символами.
Пример 5: Получение ввода в массиве
Пользовательский ввод также может быть взят в виде массива с символом «-аФлаг. Например, чтобы получить имя, возраст и адрес электронной почты пользователя за один раз, мы можем использовать массив. Давайте посмотрим на пример:
#! / bin / bashecho «Введите свое имя, возраст и адрес электронной почты»
читать -a массив имя возраст электронная почта
echo «Ваше имя, возраст и адрес электронной почты: $ array [@] имя возраст адрес электронной почты»
echo «Ваше имя и возраст: $ array [@]: 0: 1 имя возраст»
echo «Ваш адрес электронной почты: $ array [2] email»
- «$ Array [@]» будет перебирать все переменные.
- Для перебора индексов от 0 до 1 используйте «$ array [@]: 0: 1» с именами переменных.
- Чтобы получить значение определенной переменной по определенному индексу, используйте «$ array [2]» с именем переменной.
Пример 6: Добавление тайм-аута к команде «чтение»
Как указывает название команды, тайм-аут может быть добавлен в качестве условия чтения кода с помощью флага «-t», который заставляет пользователя вводить информацию в течение определенного времени. В противном случае программа перейдет к следующей строке кода.
#! \ bin \ bashecho «Какая столица Японии? Ответ через 5 секунд »
прочитать -t 5 ответ
if [«$ answer» = «токио»] || [«$ Answer» = «Токио»];
тогда
echo «Ваш ответ правильный!”
еще
echo «Ваш ответ неверен!”
фи
Заключение
Получение данных от пользовательского ввода - одна из наиболее важных частей программирования, делающая ваши программы более интерактивными. В этой статье показано, как использовать команду «читать», одну из ключевых команд в сценариях Bash. В этой статье вы узнали о некоторых различных подходах, которые можно использовать с командой «read», от базовых операторов флагов до расширенных операторов.