我正在编写一个用Perl语言编写的脚本,以检查Apache是否已安装了一个模块。在Bash中,我会使用以下命令:
# httpd -M | grep fcgid
Syntax OK
fcgid_module (shared)
如果该模块存在,我希望它返回TRUE,如果不存在,则返回FALSE。但是,我遇到了一个问题,因为httpd -M总是输出“Syntax OK。”。
以下是我目前的代码:
#!/usr/bin/perl
my $FCGID = "";
if (`httpd -M | grep fcgid`) {
$FCGID = "enabled"
} else {
$FCGID = "disabled"
}
IF语句始终被视为真。
关于我的配置:
x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS release 6.2 (Final)
# httpd -v
Server version: Apache/2.2.15 (Unix)
# perl -v
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
欢迎提供建议。我在Perl编程方面还比较新手,对Bash脚本也不是很熟悉。
print "FCGI found" if grep /fcgi/, qx(httpd -D DUMP_MODULES);
? - flesk