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

rah*_*huL 2 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
Run Code Online (Sandbox Code Playgroud)

这很好,并提供正确的预期输出.但是,在非cPanel服务器上运行时,它还会引发以下错误:

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

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

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

dev*_*ull 5

更改以下行

x=$(/usr/local/cpanel/cpanel -V)
Run Code Online (Sandbox Code Playgroud)

x=$(/usr/local/cpanel/cpanel -V 2>/dev/null)
Run Code Online (Sandbox Code Playgroud)

这么说会压制错误信息(实际上是将其重定向到/dev/null).

另外,说

if [ -z "$x" ]; then
Run Code Online (Sandbox Code Playgroud)

代替.插入2>&1 /dev/null变量声明后,您重定向STDERRSTDOUT并使变量包含以下内容:./testcpanel.sh: line 2: /usr/local/cpanel/cpanel: No such file or directory由于您收到了变量yes.