首页 > 解决方案 > 使用带有 -q 的 git 命令但在失败时不会保持安静?

问题描述

我正在创建一个脚本,在其中克隆 git 存储库。我希望我的脚本在克隆成功时打印“Cloning OK”,在失败时打印“Cloning FAILED”,并忽略这两种情况的所有命令输出。这是我正在使用的代码:

(git clone -q "$url" && echo "$url: Cloning OK") || echo "$url: Cloning FAILED" >&2

问题是,对于成功的克隆,命令会保持安静,但对于不成功的克隆,它不会。我怎样才能让它在这两种情况下都安静下来?

命令的输出

提前致谢

标签: linuxbashgitshellclone

解决方案


您必须通过将标准输出和标准错误发送到终端以外的其他地方来使命令静音。这最容易通过将两个输出流发送到 /dev/null 来实现:

(git clone -q "$url" >/dev/null 2>&1 && …

请注意,关闭此命令将使您的脚本更难调试。


推荐阅读