如何抑制 gradle 的所有输出?
How can I suppress ALL output from gradle?
我正在为 zsh 编写脚本,基本上只需要知道以下 gradle 命令的退出代码:./gradlew installDebug
。换句话说,我不想 any 输出到控制台,而 运行 这个。我试过以下方法:
./gradlew installDebug -q > /dev/null; 2>&1
这消除了 99% 的输出,但我仍然得到如下行:
Note: Generating a MembersInjector for com.example.ui.BaseActivity. Prefer to run the dagger processor over that class instead.
Note: Generating a MembersInjector for com.example.widget.nav.NavigationDrawerActivity. Prefer to run the dagger processor over that class instead.
Note: Generating a MembersInjector for com.example.fragment.ShiftListFragment. Prefer to run the dagger processor over that class instead.
这些警告来自 lint,一般来说,我想保留它(当我手动构建时,没有这个脚本)。我只是想在这种特定情况下抑制输出。
我觉得我只是没有正确重定向给定流的输出。
只要你在用zsh
就可以用
./gradlew installDebug -q &> /dev/null
对于 POSIX 兼容的 shell(包括 zsh
),您可以使用
./gradlew installDebug -q > /dev/null 2>&1
它不起作用的原因是分号。 ;
分隔两个命令,但重定向仅适用于每个命令,而不适用于每个命令行。所以实际发生的情况等同于以下内容:
./gradlew installDebug -q > /dev/null
2>&1
在第一个命令中,./gradlew
的标准输出被重定向到 /dev/null
但标准错误没有改变,因此正常打印。
第二种其实只是没有命令的重定向。在这种情况下,行为取决于参数 NULLCMD
以及选项 SH_NULLCMD
和 CSH_NULLCMD
的设置。默认情况下 zsh
运行 cat
并应用给定的重定向。
我正在为 zsh 编写脚本,基本上只需要知道以下 gradle 命令的退出代码:./gradlew installDebug
。换句话说,我不想 any 输出到控制台,而 运行 这个。我试过以下方法:
./gradlew installDebug -q > /dev/null; 2>&1
这消除了 99% 的输出,但我仍然得到如下行:
Note: Generating a MembersInjector for com.example.ui.BaseActivity. Prefer to run the dagger processor over that class instead.
Note: Generating a MembersInjector for com.example.widget.nav.NavigationDrawerActivity. Prefer to run the dagger processor over that class instead.
Note: Generating a MembersInjector for com.example.fragment.ShiftListFragment. Prefer to run the dagger processor over that class instead.
这些警告来自 lint,一般来说,我想保留它(当我手动构建时,没有这个脚本)。我只是想在这种特定情况下抑制输出。
我觉得我只是没有正确重定向给定流的输出。
只要你在用zsh
就可以用
./gradlew installDebug -q &> /dev/null
对于 POSIX 兼容的 shell(包括 zsh
),您可以使用
./gradlew installDebug -q > /dev/null 2>&1
它不起作用的原因是分号。 ;
分隔两个命令,但重定向仅适用于每个命令,而不适用于每个命令行。所以实际发生的情况等同于以下内容:
./gradlew installDebug -q > /dev/null
2>&1
在第一个命令中,
./gradlew
的标准输出被重定向到/dev/null
但标准错误没有改变,因此正常打印。第二种其实只是没有命令的重定向。在这种情况下,行为取决于参数
NULLCMD
以及选项SH_NULLCMD
和CSH_NULLCMD
的设置。默认情况下zsh
运行cat
并应用给定的重定向。