Я использую следующую команду:
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.