2013-09-21 39 views
1

上的cPanel我在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但不起作用。它总是给出yes作为输出,而不管cPanel是否存在。

我该如何去抑制输出? (OS的测试上 - 的CentOS 6和Ubuntu 13.04)

+0

+1 [不使用'which'](http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script)来确定cpanel是否存在或不。 – devnull

回答

4

更改以下行

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

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

这样说会错误消息(实际上它重定向到/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

相关问题