2009-07-01 12 views

risposta

5

Sempre stdout, rende più facile il tubo a meno, grep esso, ecc

Se si sta mostrando il testo di aiuto perché c'era un problema con l'analisi degli argomenti della riga di comando, allora si potrebbe utilizzare stderr.

+0

Beh, (s) ha specificamente detto "app - help", quindi presumo che "--help" sia riconosciuto come argomento della riga di comando. –

+0

Stavo solo suggerendo un caso in cui è possibile inviare aiuto a stderr –

1

Non è un errore, quindi direi stdout ....

5

Beh, è ​​una richiesta esplicita di aiuto in modo che sia uscita. Se per qualche motivo non puoi inviare l'aiuto o l'utente erroneamente "aiuto", invia questo a errore :-)

Gli utenti che sanno cosa stanno facendo possono usare il infame "2>&1" se vogliono errori sullo standard output.

10

Solo gli errori passano a stderr. Questo non è in alcun modo un errore, fa esattamente ciò che l'utente aveva in mente, che è l'informazione sull'uso della stampa.

-1

netcat è l'unica applicazione che posso pensare che reindirizza -h a stderr, e non posso per la vita di me capire perché.

Suppongo che se stai inviando le informazioni di aiuto perché qualcuno ha usato argomenti impropri, potresti voler reindirizzare a stderr, ma personalmente anche allora non utilizzerei stderr perché non penso che lo spamming registri errori con fullblown il testo di aiuto è utile - preferirei semplicemente emettere un singolo errore indicando che gli argomenti non erano validi per lo stderr. Se qualcuno sta chiamando esplicitamente la tua applicazione usando -h o --help, non dovresti davvero reindirizzare a stderr.