Como capto a saída de um comando para um descritor de arquivo no shell de Bourne?
Pergunta
A maneira padrão de capturar a saída de comando no Bourne Shell é usar o $()
sintaxe:
output=$(mycommand)
Para comandos que têm muita saída, no entanto, isso requer a memória do shell para a coisa toda como uma string longa. Eu prefiro encontrar algo que faça o equivalente moral da função Unix C popen
, para obter um novo descritor de arquivo que eu poderia read
a partir de:
newfd=popen(mycommand)
while read -u $newfd LINE; do
#process output
done
Isso é possível?
Solução
#!bash
ls | while read X
do
echo $X is a directory entry
done
Substitua 'ls' pelo comando de sua escolha
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow