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
如果觉得《shell 脚本获取执行系统命令的输出结果》对你有帮助,请点赞、收藏,并留下你的观点哦!