
Preciso verificar programaticamente se a configuração do NGINX está correta usando o bash. O resultado do comando nginx -t é atribuído a uma variável, e pela condição eu comparo a substring - a sintaxe está ok com o resultado da saída da variável. Infelizmente, não dá certo. O que estou fazendo de errado?
CHECK="nginx -t"
SUB='syntax is ok'
if [[ "eval $CHECK" == *"$SUB"* ]]; then
echo "syntax is ok"
else
echo "syntax is not ok"
fi
Obrigado!
Responder1
nginx -t
fornecerá um código de erro útil, então você pode simplesmente usar:
if nginx -t > /dev/null 2>&1; then
echo "syntax is ok"
else
echo "syntax is not ok"
fi