<Предыдущая | Содержание: | Следующая>
чтение - чтение значений из стандартного ввода
Команда читать Встроенная команда используется для чтения одной строки стандартного ввода. Эта команда может использоваться для чтения ввода с клавиатуры или, если используется перенаправление, строки данных из файла. Команда имеет следующий синтаксис:
читать [-кредита] [переменная...]
в котором кредита один или несколько доступных вариантов, перечисленных ниже, и переменная это имя одной или нескольких переменных, используемых для хранения входного значения. Если имя переменной не указано, переменная оболочки оТВЕТИТЬ содержит строку данных.
В основном, читать назначает поля из стандартного ввода указанным переменным. Если мы изменим наш целочисленный сценарий оценки для использования читать, это может выглядеть так:
#! / Bin / Баш
# read-integer: оценить значение целого числа.
echo -n "Пожалуйста, введите целое число ->" читать int
если [["$ int" = ~ ^ -? [0-9] + $]]; тогда если [$ int -eq 0]; тогда
echo "$ int равно нулю."
еще
если [$ int -lt 0]; тогда
echo "$ int отрицательно."
еще
echo "$ int положительный."
fi
если [$ ((int% 2)) -eq 0]; затем echo "$ int четное".
еще
echo "$ int нечетное."
fi
фи еще
echo "Входное значение не является целым числом." > & 2 выход 1
fi
#! / Bin / Баш
# read-integer: оценить значение целого числа.
echo -n "Пожалуйста, введите целое число ->" читать int
если [["$ int" = ~ ^ -? [0-9] + $]]; тогда если [$ int -eq 0]; тогда
echo "$ int равно нулю."
еще
если [$ int -lt 0]; тогда
echo "$ int отрицательно."
еще
echo "$ int положительный."
fi
если [$ ((int% 2)) -eq 0]; затем echo "$ int четное".
еще
echo "$ int нечетное."
fi
фи еще
echo "Входное значение не является целым числом." > & 2 выход 1
fi
МЫ ИСПОЛЬЗУЕМ эхо с -n параметр (который подавляет завершающуюся новую строку при выводе), чтобы отобразить приглашение, а затем используйте читать для ввода значения переменной Int. Выполнение этого сценария приводит к следующему:
[я @ linuxbox ~] $ целое число для чтения
Пожалуйста, введите целое число -> 5
5 положительный.
5 нечетно.
[я @ linuxbox ~] $ целое число для чтения
Пожалуйста, введите целое число -> 5
5 положительный.
5 нечетно.
read может назначать ввод для нескольких переменных, как показано в этом скрипте:
#! / Bin / Баш
# read-multiple: считывание нескольких значений с клавиатуры echo -n "Введите одно или несколько значений>"
читать var1 var2 var3 var4 var5
echo "var1 = '$ var1'" echo "var2 = '$ var2'" echo "var3 = '$ var3'" echo "var4 = '$ var4'" echo "var5 = '$ var5'"
#! / Bin / Баш
# read-multiple: считывание нескольких значений с клавиатуры echo -n "Введите одно или несколько значений>"
читать var1 var2 var3 var4 var5
echo "var1 = '$ var1'" echo "var2 = '$ var2'" echo "var3 = '$ var3'" echo "var4 = '$ var4'" echo "var5 = '$ var5'"
В этом скрипте мы назначаем и отображаем до пяти значений. Обратите внимание, как читать ведет себя при разном количестве значений:
[я @ linuxbox ~] $ многократное чтение
Введите одно или несколько значений> abcde
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'
[я @ linuxbox ~] $ многократное чтение Введите одно или несколько значений> a var1 = 'а'
var2 = '' var3 = '' var4 = '' var5 = ''
[я @ linuxbox ~] $ многократное чтение
Введите одно или несколько значений> АБВГДЕЖ
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'
[я @ linuxbox ~] $ многократное чтение
Введите одно или несколько значений> abcde
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'
[я @ linuxbox ~] $ многократное чтение Введите одно или несколько значений> a var1 = 'а'
var2 = '' var3 = '' var4 = '' var5 = ''
[я @ linuxbox ~] $ многократное чтение
Введите одно или несколько значений> АБВГДЕЖ
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'
If читать получает меньше ожидаемого числа, дополнительные переменные пусты, в то время как чрезмерное количество входных данных приводит к конечной переменной, содержащей все дополнительные входные данные.
Если после читать команда, переменная оболочки, оТВЕТИТЬ, будут подписаны все входные данные:
#! / Bin / Баш
# read-single: считывать несколько значений в переменную по умолчанию echo -n "Введите одно или несколько значений>"
читать
echo "REPLY = '$ REPLY'"
#! / Bin / Баш
# read-single: считывать несколько значений в переменную по умолчанию echo -n "Введите одно или несколько значений>"
читать
echo "REPLY = '$ REPLY'"
Выполнение этого сценария приводит к следующему:
[я @ linuxbox ~] $ чтение-сингл
Введите одно или несколько значений> ABCD
ОТВЕТИТЬ = 'abcd'
[я @ linuxbox ~] $ чтение-сингл
Введите одно или несколько значений> ABCD
ОТВЕТИТЬ = 'abcd'