Comment capturer la sortie d'une commande dans un descripteur de fichier dans Bourne Shell?
Question
Pour capturer le résultat d'une commande dans un shell Bourne, la méthode standard consiste à utiliser la syntaxe $ ()
:
output=$(mycommand)
Pour les commandes qui génèrent beaucoup de sorties, le shell doit allouer de la mémoire pour le tout sous la forme d'une longue chaîne. Je préférerais trouver quelque chose qui fasse l'équivalent moral de la fonction popen
d'Unix C, pour obtenir un nouveau descripteur de fichier, je pourrais lire
dans:
newfd=popen(mycommand)
while read -u $newfd LINE; do
#process output
done
Est-ce même possible?
La solution
#!bash
ls | while read X
do
echo $X is a directory entry
done
Remplacez "ls" par la commande de votre choix
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow