Bourne脚本:重定向成功消息但不是错误消息

时间:2010-04-27 18:02:02

标签: bash scripting stdout shell

此命令:

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 个答案:

答案 0 :(得分:2)

同意,这不是keytool的友好行为。

如果成功消息集很小,您可以使用grep显式删除它们,例如

keytool ... 2>&1 | grep -v '^Certificate was added to keystore$'

答案 1 :(得分:0)

在软件上放置错误报告。这些脚本应该有-q--quiet,如果不是,我称之为不受欢迎的行为。

答案 2 :(得分:0)

我最终这样做了:

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

制造钥匙工具的太阳蠢货应该被解雇。最笨拙的工具。