`read -t` не выводит мои входные данные

`read -t` не выводит мои входные данные

Я использую следующую команду:

read -t 5 num

Однако, работает:

echo "$num"

не печатает значение num.

решение1

Правильный синтаксис readдемонстрируется в этом примере:

$читать число
10
$эхо "$num"
10

решение2

readэтоВстроенный Bashфункция, которая считывает строку из стандартного ввода и сохраняет ее в переменной. Основной синтаксис read:

read var

Если вы запустите это, приглашение будет ждать ввода текста, пока вы не нажмете Enter. После нажатия Enterтекст будет сохранен в varпеременной, которую вы затем можете отобразить с помощью echo:

echo $var

Флаг -t, который вы используете в своем вопросе, используется для того, чтобы сделать readтайм-аут после того, как указанное время (в секундах) прошло. Если указанное количество времени прошло, а вы не ввели текст и не нажали Enter, echo $varничего не вернет.

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

Но это не так! Текст будет сохранен только varесли вы нажмете Enter.

Связанный контент