当两个命令通过管道传输时,将输出重定向到/ dev / null?

时间:2018-01-01 14:10:59

标签: android linux bash

我正在尝试为Android CI系统构建一个docker镜像,但希望避免繁重的日志文件。因此,为了避免在stdout上输出,我希望它重定向到/dev/null。我是使用linux命令的新手。

我的实际命令是:

echo "y" | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-27"

而且我正在使用&&评论多行代码。所以结果是这样的:

echo "y" | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-27" && \
echo "y" | $ANDROID_HOME/tools/bin/sdkmanager "tools" "platform-tools"

但是,命令($ANDROID_HOME/tools/bin/sdkmanager "platforms;android-27")在屏幕上显示一个大型许可证文件,它会生成一个大型日志文件,最终超出了我尝试运行的日志文件限制。

为避免这种情况,我想将输出传递给/dev/null。所以,我尝试了:

echo "y" | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-27" && \
echo "y" | $ANDROID_HOME/tools/bin/sdkmanager "tools" "platform-tools" > /dev/null 2>&1 & 

导致许可证未被接受。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

我建议:

{ command1 | command2 && command3 | command4; } >/dev/null 2>&1