Como fecho stdin em um script de shell?

13

Eu tenho um programa que se comporta mal que preciso chamar do meu script. Ele sai assim que vê algo no stdin. Existe uma maneira de fechar o stdin?

Sundae
fonte

Respostas:

8

Basta canalizar um programa sem saída:

: | misbehaving_program
choroba
fonte
Nossa que isso? O que faz?
KaiserKatze 24/05/19
":" é um comando interno do shell que não faz nada. Permite introduzir comentários ou pode ser usado para redirecionamentos. Por exemplo ":> file" cria um arquivo vazio. Ou ": |" nesse caso, alimenta um fluxo vazio para o comando.
Raúl Salinas-Monteagudo
8

Encontrado, você pode fechar o stdin com:

exec 0<&-
Sundae
fonte
5

De acordo com o que você diz, você pode resolver o seu problema simplesmente

pickyProgram < /dev/null
Raúl Salinas-Monteagudo
fonte