bash - 检查服务器上是否安装了cPanel

时间:2013-09-21 07:29:10

标签: linux bash ubuntu centos

我在bash中有一个小脚本,用于检查服务器是否为cPanel服务器

#!/bin/bash
echo "checking"
x=$(/usr/local/cpanel/cpanel -V)
if [ "$x" ]; then
        echo "yes"
else
        echo "no"
fi

这样可以正常工作并提供正确的预期输出。但是,在非cPanel服务器上运行时,它还会引发以下错误:

./testcpanel.sh: line 2: /usr/local/cpanel/cpanel: No such file or directory 我想抑制这个输出。

我尝试在变量声明中插入2>&1 /dev/null,但这不起作用。无论cPanel是否存在,它总是以yes作为输出。

如何抑制输出? (操作系统在 - CentOS 6和Ubuntu 13.04上测试)

1 个答案:

答案 0 :(得分:5)

更改以下行

x=$(/usr/local/cpanel/cpanel -V)

x=$(/usr/local/cpanel/cpanel -V 2>/dev/null)

这样说 supress 错误消息(实际上将其重定向到/dev/null)。

另外,说

if [ -z "$x" ]; then

代替。在变量声明中插入2>&1 /dev/null后,您将STDERR重定向到STDOUT,并使变量包含:./testcpanel.sh: line 2: /usr/local/cpanel/cpanel: No such file or directory,因为您收到了yes