Как использовать команду read в Linux
Эти и многие другие задачи можно выполнить с помощью команды read и ее различных параметров.
В этой статье на нескольких примерах вы познакомитесь с основами команды чтения и ее параметрами.
Что такое команда «Читать»?
В Linux вы можете использовать команду read для захвата пользовательского ввода или чтения строки из стандартного ввода (stdin). Эта команда считывает общее количество байтов из указанного файлового дескриптора и сохраняет их в буфере. Затем команда возвращает количество прочитанных байтов, ноль или ошибку.
Например, если число или количество равно нулю, команда будет ссылаться на конец файла. Но в случае успеха команда возвращает количество прочитанных байтов. Если команда чтения находит какие-либо ошибки, она возвращает -1.
Прежде чем изучать параметры команды чтения, давайте сначала рассмотрим синтаксис команды чтения:
читать (опции) (имя…)
Здесь параметр options определяет различные флаги, используемые для изменения поведения команды read. Кроме того, параметр name определяет имена нескольких переменных, используемых для хранения входных данных. Если имя не указано, входные данные будут сохранены в переменной bash $REPLY.
параметры команды чтения
Команда Bash read имеет много опций для управления пользовательским вводом. Некоторые опции не требуют дополнительных параметров, а некоторые требуют.
Давайте рассмотрим некоторые параметры, которые мы можем использовать с командой read:
Option Describe -a Сохраняет входные данные в виде массива, а не отдельных переменных. -S Работает в фоновом режиме, то есть входные данные не отображаются на терминале. -e Включает поддержку библиотеки readline и чтение входных строк. -i Предоставляет начальное входное значение, которое отображается в приглашении при использовании readline. -p Отображает указанное приглашение перед чтением ввода. -u Читать из указанного файлового дескриптора вместо стандартного ввода (stdin). -d Позволяет указать разделитель входных строк вместо символа новой строки по умолчанию. -t Устанавливает тайм-аут ввода. Если ввод не получен в течение этого времени, команда read вернет ошибку. -r Если установлено, обратные косые черты не рассматриваются как escape-символы. -n Читает только указанное количество символов.
Введите следующую команду для вывода меню справки по командам чтения:
голова –помощь
Как прочитать ввод с помощью команды read
Самый простой способ использовать команду read — использовать ее без аргументов или опций. При выполнении только команды read команда запросит у вас ввод, который вы хотите прочитать. После ввода ввода команда завершает работу и сохраняет этот ввод в переменной по умолчанию с именем REPLY.
Давайте рассмотрим следующий пример:
читать
Теперь, после ввода данных, отобразите их с помощью команды echo:
эхо $ОТВЕТ
При считывании входного значения вы также можете сохранить его в любой другой конкретной переменной. Например, чтобы сохранить результат в переменной, введите команду чтения, а затем имя переменной:
прочитать переменную1
Теперь, чтобы отобразить результаты, необходимо использовать команду echo с переменной, хранящей значение:
эхо $переменная1
Прочитайте много значений
Не существует прямого способа прочитать несколько значений с помощью команды read. Однако вы можете разделить входное предложение на несколько слов и сохранить их в разных переменных.
Рассмотрим следующий пример:
читать переменная1 переменная2 переменная3
Здесь вы сохраняете первое слово предложения в первой переменной, второе слово — во второй переменной, а все оставшиеся слова — в последней предоставленной переменной.
Давайте вернем вывод с помощью следующей команды:
эхо
Чтение из файла
Хотя команда read в первую очередь предназначена для пользовательского ввода, вы также можете использовать ее для чтения строк из файла. Для этого просто используйте цикл while, команду echo и команду read, за которой следует определенное имя переменной:
пока читаем строку; делаем echo “$line” done
Здесь цикл while считывает каждую строку “samplefile.txt” и записывает ее в переменную line. После считывания всех строк файла команда echo отобразит значение этой строки.
Чтение входных данных в цикле
Вы также можете захватывать пользовательский ввод в повторяющейся последовательности, используя команду read с циклом while. Это полезно, когда вы хотите собрать несколько вводов или продолжать, пока не будет выполнено определенное условие.
Например, давайте прочитаем несколько входных данных и отобразим их на терминале:
пока читаем строку; делаем echo “Line: $line” done
Более того, цикл продолжается до тех пор, пока не будет получен сигнал конца файла (EOF), обычно путем нажатия Ctrl + D.
Сэмюэл Дэниел
Обновление 01 августа 2024 г.