Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

read – читання значень зі стандартного введення

Команда зчитування вбудована команда використовується для читання одного рядка стандартного введення. Цю команду можна використовувати для читання введення з клавіатури або, якщо використовується перенаправлення, рядка даних з файлу. Команда має такий синтаксис:

читати [-опції] [змінна...]

де опції це один або кілька доступних варіантів, перерахованих нижче та змінна це ім'я однієї або кількох змінних, які використовуються для зберігання вхідного значення. Якщо ім'я змінної не вказано, змінна оболонки ВІДПОВІДЬ містить рядок даних.

В принципі, зчитування призначає поля стандартного введення вказаним змінним. Якщо ми модифікуємо наш сценарій оцінки цілого числа для використання зчитування, це може виглядати так:


#! / бін / баш


# read-integer: оцінити значення цілого числа.


echo -n "Введіть ціле число -> " прочитати int


якщо [[ "$int" =~ ^-?[0-9]+$ ]]; тоді якщо [ $int -eq 0 ]; тоді

echo "$int дорівнює нулю."

ще

якщо [ $int -lt 0 ]; тоді

echo "$int негативний."

ще

echo "$int позитивний."

fi

якщо [ $((int % 2)) -екв 0 ]; потім echo "$int парний".

ще

echo "$int непарний."

fi

fi ще

echo "Вхідне значення не є цілим числом." >&2 вихід 1

fi

#! / бін / баш


# read-integer: оцінити значення цілого числа.


echo -n "Введіть ціле число -> " прочитати int


якщо [[ "$int" =~ ^-?[0-9]+$ ]]; тоді якщо [ $int -eq 0 ]; тоді

echo "$int дорівнює нулю."

ще

якщо [ $int -lt 0 ]; тоді

echo "$int негативний."

ще

echo "$int позитивний."

fi

якщо [ $((int % 2)) -екв 0 ]; потім echo "$int парний".

ще

echo "$int непарний."

fi

fi ще

echo "Вхідне значення не є цілим числом." >&2 вихід 1

fi


Ми використовуємо нудьгувати з -n параметр (який пригнічує кінцевий новий рядок на виводі), щоб відобразити підказку, а потім скористайтеся зчитування щоб ввести значення змінної Int. Запуск цього сценарію призводить до цього:


[me@linuxbox ~]$ читання ціле число

Будь ласка, введіть ціле число -> 5

5 є позитивним.

5 непарно.

[me@linuxbox ~]$ читання ціле число

Будь ласка, введіть ціле число -> 5

5 є позитивним.

5 непарно.


read може призначити введення кільком змінним, як показано в цьому скрипті:


#! / бін / баш

# read-multiple: прочитати кілька значень з клавіатури echo -n "Введіть одне або кілька значень > "

прочитати вар1 вар2 вар3 вар4 вар5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"

#! / бін / баш

# read-multiple: прочитати кілька значень з клавіатури echo -n "Введіть одне або кілька значень > "

прочитати вар1 вар2 вар3 вар4 вар5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"


У цьому скрипті ми призначаємо та відображаємо до п’яти значень. Зверніть увагу, як зчитування поводиться, коли надається різна кількість значень:



[me@linuxbox ~]$ багаторазове читання

Введіть одне або кілька значень > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[me@linuxbox ~]$ багаторазове читання Введіть одне або кілька значень > a var1 = 'a'

var2 = '' var3 = '' var4 = '' var5 = ''

[me@linuxbox ~]$ багаторазове читання

Введіть одне або кілька значень > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'

[me@linuxbox ~]$ багаторазове читання

Введіть одне або кілька значень > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[me@linuxbox ~]$ багаторазове читання Введіть одне або кілька значень > a var1 = 'a'

var2 = '' var3 = '' var4 = '' var5 = ''

[me@linuxbox ~]$ багаторазове читання

Введіть одне або кілька значень > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'


If зчитування отримує менше очікуваного числа, додаткові змінні порожні, тоді як надмірна кількість введених даних призводить до того, що кінцева змінна містить усі додаткові вхідні дані.

Якщо змінні не вказано після зчитування команда, змінна оболонки, ВІДПОВІДЬ, буде призначено всі вхідні дані:



#! / бін / баш

# read-single: прочитати кілька значень у змінну за замовчуванням echo -n "Введіть одне або кілька значень > "

зчитування


echo "REPLY = '$REPLY'"

#! / бін / баш

# read-single: прочитати кілька значень у змінну за замовчуванням echo -n "Введіть одне або кілька значень > "

зчитування


echo "REPLY = '$REPLY'"


Запуск цього сценарію призводить до цього:



[me@linuxbox ~]$ читання-одиночне

Введіть одне або кілька значень > а Б В Г

ВІДПОВІДЬ = 'abcd'

[me@linuxbox ~]$ читання-одиночне

Введіть одне або кілька значень > а Б В Г

ВІДПОВІДЬ = 'abcd'


 

Найпопулярніші хмарні обчислення ОС на OnWorks: