Dans un script bash, je cherche à écrire un message d’erreur sur la sortie d’erreur.
En langage c je fait comme ceci :fprintf(stderr, "Message d'erreur\n");En bash, je pense qu’il faut faire de cette façon :echo "Erreur" >&2Mais ça ne fonctionne pas :$ echo "Erreur" >&2 2> /dev/null
ErreurQuelqu’un sait-il comment faire ?
Je n’ai pas compris tes lignes de codes (surtout la commande “francois”).
Mais je ne pense pas que 2> fasse ce que je veux. Ca ne fait que rediriger ailleurs des messages qui sont déjà dans le canal d’erreur. Ce qu’il me faut, c’est un moyen de mettre mes propres messages dans le canal d’erreur stderr.
francois /tmp >c’est ton invite de commande !!
Je croyais que c’était une fonction francois qui s’appliquait au dossier /tmp et dont la sortie était redirigée vers … d’autres commandes
En fait la solution que j’ai donnée au début était bonne, c’était le protocole de test qui n’était pas bon. Avec des parenthèses ça marche :
$ (echo "Erreur" >&2) 2> /dev/null
$
Rien n’est affiché. Et là l’erreur s’affiche bien :
$ (echo "Erreur" >&2) 1> /dev/null
Erreur
$
Merci !
Je savait pas qu’on pouvait mettre des parenthèses, c’est POSIX ?