在 Linux 上安装 apache 静默避免 AH00558

Install apache on Linux silent avoiding AH00558

我正在编写一个 bash 脚本,它在 Linux (Ubuntu 14.04) 上安装 Apache2。

echo "Check if Apache is installed"

dpkg -p "apache2" > /dev/null 2>&1

if [ $? != 0 ]; then
    echo "Apache2 is not installed"
    echo "Apache2 installing"
    apt-get -q -y install apache2 > /dev/null
    echo "Apache2 installed"
else
    echo "Apache2 is already installed"
fi

脚本应该是无声的,只有 'echos' 应该显示。但我得到:

Check if Apache is installed
Apache2 is not installed
Apache2 installing
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Apache2 installed

我知道如何在安装后修复 AH00558,但我想在安装时抑制警告。

解决方法是什么?

将 stderr 流重定向到 /dev/NULL

apt-get -q -y install apache2 2>&1 1> /dev/null

这将使您的 stdout 和 stderr 重定向到 /dev/null

我找到了答案:重定向的顺序

适用于

apt-get -y install apache2 > /dev/null 2>&1