Как закрыть стандартный ввод в сценарии оболочки?

13

У меня неправильная программа, которую мне нужно вызвать из моего скрипта. Он выходит, как только видит что-то на stdin. Есть ли способ закрыть стандартный ввод?

Пломбир
источник

Ответы:

9

Просто труба в программе без вывода:

: | misbehaving_program
choroba
источник
Вау, что это? Что делает ':'?
KaiserKatze
«:» - это внутренняя команда оболочки, которая ничего не делает. Он позволяет вводить комментарии или может использоваться для перенаправлений. Например, ":> файл" создает пустой файл. Или ": |" в этом случае в команду подается пустой поток.
Рауль Салинас-Монтеагудо
8

Найдя его, вы можете закрыть stdin с помощью:

exec 0<&-
Пломбир
источник
5

Согласно тому, что вы говорите, вы можете решить свою проблему, просто

pickyProgram < /dev/null
Рауль Салинас-Монтеагудо
источник