Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir les résultats des tests dans nginx à l'aide du shell

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

.
習慣沉默習慣沉默2712 Il y a quelques jours673

répondre à tous(1)je répondrai

  • 黄舟

    黄舟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

    Si vous avez besoin d'obtenir le résultat de la commande, vous pouvez le faire comme suit : 🎜 rrreee 🎜La fonction de 2>&1 est de rediriger l'erreur standard vers la sortie standard🎜

    répondre
    0
  • Annulerrépondre