【问题标题】:bash - check if cPanel is installed on the serverbash - 检查服务器上是否安装了 cPanel
【发布时间】:2013-09-26 15:04:06
【问题描述】:

我在 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 上测试)

【问题讨论】:

标签: linux bash ubuntu centos


【解决方案1】:

更改以下行

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

【讨论】:

    猜你喜欢
    • 2021-03-19
    • 1970-01-01
    • 2015-12-24
    • 2012-04-09
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 2013-09-02
    • 2013-12-06
    相关资源
    最近更新 更多