Je pense que stdout, donc vous pouvez facilement grep, qu'en pensez-vous?'app --help' devrait aller à stdout ou stderr?
Répondre
toujours stdout, facilite la conduite à moins, grep il etc.
Si vous affichez le texte d'aide parce qu'il y avait un problème avec l'analyse des arguments de ligne de commande, vous pouvez utiliser stderr.
Eh bien, (s) il a spécifiquement dit "app --help" donc je suppose que "--help" est reconnu comme un argument de ligne de commande. –
Je ne faisais que suggérer un cas où vous pourriez envoyer de l'aide à stderr –
Ce n'est pas une erreur, donc je dirais stdout ....
Eh bien, il est une demande explicite de l'aide il est donc sortie. Si, pour une raison ou une autre, vous ne pouvez pas afficher l'aide ou si l'utilisateur a mal orthographié "help", alors envoyez-le à error :-)
Les utilisateurs qui savent ce qu'ils font peuvent utiliser le infâme "2>&1"
s'ils veulent des erreurs sur la sortie standard.
Seules les erreurs vont à stderr
. Ce n'est en aucun cas une erreur, il fait exactement ce que l'utilisateur avait à l'esprit, qui est l'information d'utilisation d'impression.
netcat est la seule application que je peux penser qui redirigerait -h à stderr, et je ne peux pas pour la vie de moi pourquoi. Je suppose que si vous publiez les informations d'aide parce que quelqu'un a utilisé des arguments incorrects, vous voudrez peut-être le rediriger vers stderr, mais même personnellement, je n'utiliserais pas stderr car je ne pense pas que les logs d'erreur de spam le texte d'aide est utile - je préfère simplement afficher une seule erreur indiquant que les arguments ont été malformés dans stderr. Si quelqu'un appelle explicitement votre application en utilisant -h ou --help, alors vous ne devriez pas le rediriger vers stderr.
'stderr' bien sûr. C'est ainsi que tout dans Unix l'attend. – mirabilos