shell脚本执行系统命令,需要根据系统命令输出的结果判断是否执行重启apache

apachectl configtest  这个命令是检查配置文件语法是否正确,而这个命令如果回显Syntax OK,说明apache配置文件语法正确,可以重启apache

configtest_result=`apachectl configtest `

echo $configtest_result

这么写打印结果是空,实际上执行上面的命令返回:Syntax OK

加上   2>&1

#!/bin/sh

configtest_result=`apachectl configtest 2>&1`
echo "configtest返回结果:$configtest_result"

isSuccess_str="Syntax OK";
if [[ $configtest_result =~ $isSuccess_str ]]; then
apachectl graceful #重新加载配置而不影响激活的请求
else
echo "配置文件语法语法错误"
fi

执行结果:

configtest返回结果:Syntax OK

这样就可以获取到回显结果了

2>&1  是将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向到configtest_result

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐