【问题标题】:Bourne Script: Redirect success messages but NOT error messagesBourne 脚本:重定向成功消息但不重定向错误消息
【发布时间】:2010-04-27 18:02:01
【问题描述】:

这个命令:

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 约定发生了什么:“如果它有效,则不输出任何内容”。

【问题讨论】:

    标签: bash scripting stdout shell


    【解决方案1】:

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

    如果成功消息集很少,可以使用 grep 显式删除,例如

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

    【讨论】:

      【解决方案2】:

      在软件上提交错误报告。这类脚本应该有-q--quiet,如果没有,我会称之为不受欢迎的行为。

      【讨论】:

        【解决方案3】:

        我最终这样做了:

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

        应该解雇那个制造钥匙工具的白痴。有史以来最笨拙的工具。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-04
          • 1970-01-01
          • 1970-01-01
          • 2010-09-14
          • 2023-03-04
          • 2013-11-16
          • 1970-01-01
          相关资源
          最近更新 更多