У нас есть скрипт ksh, который читает из строки 'while read' с введенным в нее вводом.В то же время мы читаем вводимые пользователем подтверждения с «read </ dev / tty», аналогично следующему эскизу: </p>
cat interestingdata | while read line ; do
x=$(dostuff $line)
if [[ x -ne 0 ]] ; then
read y < /dev/tty
$(domorestuff $y)
fi
echo "done optional stuff"
done
Все отлично работает для обработки строк интереса и длябольшая часть чтения из / dev / tty.Однако на первых двух итерациях цикла while первая строка + символ новой строки игнорируются.
Под этим я подразумеваю, что пользователь что-то печатает и нажимает клавишу ввода, и сценарий не переходит к отображению «готовых необязательных вещей».Вместо этого пользователь должен ввести что-то еще и снова нажать клавишу ввода, и только после этого скрипт продолжится.
Это происходит только для первых двух итераций цикла while, и тогда все работает отлично.Есть идеи, как я могу это исправить?Я понятия не имею, что еще я могу сделать здесь!
Запуск ядра Linux 2.6.9-55.9.vm2.ELsmp с ksh93, если это поможет.