'app --help' должен идти в stdout или stderr?

Я думаю, stdout, так что вы можете легко grep, что вы думаете?

Ответ 1

Только ошибки идут в stderr. Это никоим образом не является ошибкой, она делает именно то, что имел в виду пользователь, который является информацией об использовании печати. ​​

Ответ 2

Всегда stdout, упрощает трафик на меньшее, grep и т.д.

Если вы показываете текст справки, потому что возникла проблема с разбором аргументов командной строки, вы можете использовать stderr.

Ответ 3

Ну, это явный запрос на помощь, чтобы он выводил. Если по какой-то причине вы не можете выдать помощь или пользователь неправильно произносит "помощь", то, непременно, отправьте это на ошибку: -)

Пользователи, которые знают, что делают, могут использовать печально известный "2>&1", если им нужны ошибки на стандартном выходе.

Ответ 4

Это не ошибка, поэтому я бы сказал stdout....

Ответ 5

netcat - единственное приложение, которое я могу думать о том, что будет перенаправлять -h на stderr, и я не могу для жизни понять, почему.

Я предполагаю, что если вы выводите справочную информацию, потому что кто-то использовал неправильные аргументы, вы можете перенаправить ее на stderr, но лично даже тогда я бы не использовал stderr, потому что я не думаю, что журналы спам-сообщений с полной поддержкой текст полезен - я бы скорее просто вывел одну ошибку, указав, что аргументы были искажены для stderr. Если кто-то явно вызывает ваше приложение с помощью -h или --help, вы действительно не должны перенаправлять его на stderr.