Come posso catturare l'output di un comando su un descrittore di file nella shell Bourne?

StackOverflow https://stackoverflow.com/questions/624520

  •  05-07-2019
  •  | 
  •  

Domanda

Il modo standard per acquisire l'output del comando nella shell Bourne è utilizzare la sintassi $ () :

output=$(mycommand)

Per i comandi che hanno un sacco di output, tuttavia, ciò richiede che la shell alloca memoria per l'intera cosa come una stringa lunga. Preferirei trovare qualcosa che faccia l'equivalente morale della funzione Unix C popen , per ottenere un nuovo descrittore di file che potrei leggere da:

newfd=popen(mycommand)
while read -u $newfd LINE; do
  #process output
done

È anche possibile?

È stato utile?

Soluzione

#!bash
ls | while read X
do 
    echo  $X is a directory entry
done

Sostituisci 'ls' con il comando che preferisci

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top