Доброго времени.
Не подскажите, каким образом в bash скрипте можно проигнорировать чтение с /dev/stdin, если туда ничего не передано?
Проблема заключается в следующем: если на стандартный ввод ничего не передано, скрипт просто подвисает в ожидании того что оттуда будет что то получено.
Даже если проверить /dev/stdin на null, всё равно на обращении виснет.
Доброго времени!Если в скрипте используется read, то можно использовать параметр -t timeout.
Мне не ясна как сама задача, которая требует такой схемы, так и реализачия скрипта.
>Даже если проверить /dev/stdin на nullКак вы его проверяете!
Для интерактивного взаимодействия можно использовать pipeline и перенаправление.
> Доброго времени!
> Если в скрипте используется read, то можно использовать параметр -t timeout.
> Мне не ясна как сама задача, которая требует такой схемы, так и
> реализачия скрипта.
>>Даже если проверить /dev/stdin на null
> Как вы его проверяете!
> Для интерактивного взаимодействия можно использовать pipeline и перенаправление.Благодарствую за наводку. Раньше делал по дубовому ;), cat </dev/stdin и если ничего нет, всё глохло.
С read с таймаутом или с проверкой дескриптора всё как и требовалось, сейчас как-то так отрабатывает нормально.
if ! [ -t 0 ]; then
read -a var_name
fi