command-line – ¿Debería el mensaje de uso ir a stderr o stdout?

Pregunta:

Si el mensaje de uso que se imprime con, por ejemplo,

 command -?

de un comando de Unix, vaya a stderr o stdout, y ¿por qué? ¿Debería ir al mismo lugar si el usuario se equivoca con una opción?

Respuesta:

Debería ir a stdout, por lo que puede escribir:

command --help | less

Esto también lo recomiendan los Estándares de codificación --help en --help .

Por otro lado, el mensaje de uso que recibe cuando usa una opción no válida u omite un argumento requerido debe ir a stderr, porque es un mensaje de error y no quiere que se alimente en el siguiente comando en una canalización.

Cuando usa --help , el mensaje de uso es el resultado normal y esperado del comando. Por lo tanto, va a stdout, por lo que se puede canalizar a otro comando, como less o grep .

Cuando dices command --bogus-option | other-command , no desea que el mensaje de uso vaya a stdout, porque ahora es una salida inesperada que no debería ser procesada por other-command . Además, si el resultado de --help tiene más de un puñado de líneas, entonces el mensaje de error de uso solo debe contener un resumen del resultado de --help y remitir al usuario a --help para obtener detalles adicionales.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım