¿Cómo capturo la salida de un comando a un descriptor de archivo en el shell Bourne?
Pregunta
La forma estándar de capturar la salida del comando en el shell Bourne es usar la sintaxis $ ()
:
output=$(mycommand)
Para los comandos que tienen mucha salida, sin embargo, esto requiere que el shell asigne memoria para todo esto como una cadena larga. Preferiría encontrar algo que tenga el equivalente moral de la función popen
de Unix C, para obtener un nuevo descriptor de archivo que podría leer
de:
newfd=popen(mycommand)
while read -u $newfd LINE; do
#process output
done
¿Es esto posible?
Solución
#!bash
ls | while read X
do
echo $X is a directory entry
done
Reemplaza 'ls' con el comando que elijas
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow