Vous n'êtes pas identifié(e).
Bonjour,
J'utilise la commande commande qui, durant son exécution, écrit des lignes de texte dans le descripteur n°1 (stdout) et une valeur numérique dans le descripteur n°2 (stderr). J'aimerais que les lignes de texte (stdout) s'affichent dans la console et que la valeur numérique (stderr) soit stockée dans une variable bash.
Quelqu'un sait-il faire cela ?
Hors ligne
Salut,
Désolé j'arrive un peu tard, j'espère que ça te sera qd même utile:
Mon script d'essai :
cat /tmp/test.sh
echo "stdout"
echo "stderr" >&2
Son test:
$ /tmp/test.sh 2> /dev/null
stdout
$ /tmp/test.sh > /dev/null
stderr
Et ta réponse:
$ V=$(/tmp/test.sh 3<&2 2>&1 1>&3)
stdout
$ echo $V
stderr
Explication: j'inverse stderr et stdout
1/ je clone la sortie stderr dans le fd 3
2/ je redirige stderr vers stdout
3/ je redirige stdout vers le fd 3, qui est donc stderr
[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222
Hors ligne
Ceci dit, on peut probablement faire mieux, je suis curieux de voir les autres solution du coup
[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222
Hors ligne
Merci pour ta réponse. Tu n'arrives pas trop tard.
Hors ligne
Excellent
[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222
Hors ligne