nginx如何用shell获取测试结果

【字号: 日期:2022-07-19浏览:24作者:雯心

问题描述

想写一个自动脚本先测试生成的配置文件

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/test.conf

如果测试成功就覆盖nginx.conf 不成功就返回错误

然而不知道如何获取执行测试指令之后的信息 指令都是执行成功

问题解答

回答1:

[root@arbiter nginx]# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.confnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@arbiter nginx]# echo $?0[root@arbiter nginx]# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/mime.typesnginx: [emerg] 'types' directive is not allowed here in /usr/local/nginx/conf/mime.types:2nginx: configuration file /usr/local/nginx/conf/mime.types test failed[root@arbiter nginx]# echo $?1

bash 中 $? 用来获取上一条命令的返回值,0 为正常,其他值为异常。

如果需要获取命令输出,可以按一下方式操作:

[root@arbiter nginx]# a='`/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/mime.types 2>&1`'[root@arbiter nginx]# echo $anginx: [emerg] 'types' directive is not allowed here in /usr/local/nginx/conf/mime.types:2 nginx: configuration file /usr/local/nginx/conf/mime.types test failed

其中2>&1的作用是将标准错误重定向到标准输出

相关文章: