Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

чтение - чтение значений из стандартного ввода

Ассоциация читать Встроенная команда используется для чтения одной строки стандартного ввода. Эта команда может использоваться для чтения ввода с клавиатуры или, если используется перенаправление, строки данных из файла. Команда имеет следующий синтаксис:

читать [-кредита] [переменная...]

в котором кредита один или несколько доступных вариантов, перечисленных ниже, и переменная это имя одной или нескольких переменных, используемых для хранения входного значения. Если имя переменной не указано, переменная оболочки оТВЕТИТЬ содержит строку данных.

В основном, читать назначает поля из стандартного ввода указанным переменным. Если мы изменим наш целочисленный сценарий оценки для использования читать, это может выглядеть так:


#! / 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'


 

Лучшие облачные вычисления для ОС в OnWorks: