Maison > Questions et réponses > le corps du texte
Je souhaite écrire un script automatique
Testez d'abord le fichier de configuration généré
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/test.conf
Si le test réussit, écrasez nginx.conf. S'il échoue, une erreur sera renvoyée
.Cependant, je ne sais pas comment obtenir les informations après avoir exécuté les instructions de test. Les instructions sont toutes exécutées avec succès
.黄舟2017-05-16 17:17:34
[root@arbiter nginx]# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: 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.types
nginx: [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
[root@arbiter nginx]# echo $?
1
Dans bash, $?
est utilisé pour obtenir la valeur de retour de la commande précédente. 0 est normal et les autres valeurs sont anormales. $?
用来获取上一条命令的返回值,0 为正常,其他值为异常。
如果需要获取命令输出,可以按一下方式操作:
[root@arbiter nginx]# a="`/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/mime.types 2>&1`"
[root@arbiter nginx]# echo $a
nginx: [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
2>&1
est de rediriger l'erreur standard vers la sortie standard🎜