Bourne Script: перенаправлять сообщения об успехе, но НЕ сообщения об ошибках - PullRequest
0 голосов
/ 27 апреля 2010

Эта команда:

keytool -import -file "$serverPath/$serverCer" -alias "$clientTrustedCerAlias" -keystore "$clientPath/$clientKeystore" -storepass "$serverPassword" -noprompt

В случае успешного запуска выдает: Certificate was added to keystore

Я попытался перенаправить стандарт с:

keytool ... > /dev/null

Но это все еще печать.

Похоже, что сообщение выводится со стандартной ошибкой. Поскольку, когда я делаю это, оно не отображается:

keytool ... > /dev/null 2>&1

Однако это не то, что я хочу сделать. Я хотел бы, чтобы сообщения об ошибках выводились нормально, но я не хочу, чтобы сообщения об успехе выводились в командную строку. Есть идеи? Что бы ни случилось с соглашением Unix: «Если это работает, ничего не выводите».

Ответы [ 3 ]

2 голосов
/ 27 апреля 2010

Согласен, это не дружелюбное поведение со стороны keytool.

Если набор сообщений об успехе невелик, вы можете использовать grep, чтобы явно удалить их, например

keytool ... 2>&1 | grep -v '^Certificate was added to keystore$'
0 голосов
/ 27 апреля 2010

Я закончил этим:

keytool ... > /tmp/keytmp 2>&1 || cat /tmp/keytmp

Идиот на солнце, который сделал keytool, должен быть уволен. Самый неподходящий инструмент.

0 голосов
/ 27 апреля 2010

Разместить отчет об ошибке в программном обеспечении. Для таких сценариев должно быть -q или --quiet, если это не так, я бы назвал это нежелательным поведением.

...