Здравствуйте, Marty, Вы писали:
Pzz>>Но cdrecord!
M>Просто использует устоявшиеся соглашения? Вероятно, автор решил, что если одни утилиты будут справку выводить в stderr, а другие — в stdout, то это будет, как минимум, странно и непривычно
Большинство юниксных утилит выводят справку в stdout.
Наверное, в материалах GNU есть даже какой-нибудь гайд на эту тему. Но лень его искать...
Здравствуйте, Marty, Вы писали:
M>Просто использует устоявшиеся соглашения? Вероятно, автор решил, что если одни утилиты будут справку выводить в stderr, а другие — в stdout, то это будет, как минимум, странно и непривычно
GNU Coding Standard говорит, опция --help должна вываливать хелп в stdout и завершаться с кодом 0.
Здравствуйте, Pzz, Вы писали:
M>>Просто использует устоявшиеся соглашения? Вероятно, автор решил, что если одни утилиты будут справку выводить в stderr, а другие — в stdout, то это будет, как минимум, странно и непривычно
Pzz>GNU Coding Standard говорит, опция --help должна вываливать хелп в stdout и завершаться с кодом 0.
Pzz>https://www.gnu.org/prep/standards/html_node/_002d_002dhelp.html
ЕМ>>Почему изрядная часть unix-like утилит выводит справку в stderr? N>Оно еще и не 0 в exit code. Если утилита участвует в pipe ты точно хочешь мусор на входе следующего этапа конвейера?
Я точно хочу.
Во первых, возможно, именно в этом и цель (передать справку, ведь её для этого запросили явно).
Во вторых если неожиданно где-то вылезла именно справка, значит скорее всего конвейер сломался (что-то обновилось?), и по внезапной справке можно быстро определить на каком этапе.