2013-09-21 63 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

相關問題