Bash Bourne脚本:重定向成功消息,但不重定向错误消息
此命令:Bash Bourne脚本:重定向成功消息,但不重定向错误消息,bash,scripting,stdout,shell,Bash,Scripting,Stdout,Shell,此命令: keytool -import -file "$serverPath/$serverCer" -alias "$clientTrustedCerAlias" -keystore "$clientPath/$clientKeystore" -storepass "$serverPassword" -noprompt 当它成功运行时将输出:证书已添加到密钥库 我尝试通过以下方式重定向标准: keytool ... > /dev/null 但它仍在印刷 消息似乎被输出为标准错误。因
keytool -import -file "$serverPath/$serverCer" -alias "$clientTrustedCerAlias" -keystore "$clientPath/$clientKeystore" -storepass "$serverPassword" -noprompt
当它成功运行时将输出:证书已添加到密钥库
我尝试通过以下方式重定向标准:
keytool ... > /dev/null
但它仍在印刷
消息似乎被输出为标准错误。因为当我这样做时,它不会显示:
keytool ... > /dev/null 2>&1
然而,这不是我想要做的。我希望错误消息正常输出,但不希望“成功”消息输出到命令行。有什么想法吗?不管unix约定发生了什么:“如果它工作,就不要输出任何东西” 在软件上放置错误报告。对于这类脚本,应该有一个
-q
或-quiet
,如果不是,我将称之为不需要的行为。同意,这不是keytool的友好行为
如果成功消息集很小,您可以使用grep显式删除它们,例如
keytool ... 2>&1 | grep -v '^Certificate was added to keystore$'
我最终做了这样的事:
keytool ... > /tmp/keytmp 2>&1 || cat /tmp/keytmp
制造钥匙工具的sun的白痴应该被解雇。有史以来最好的工具