我需要使用 bash 以程式設計方式檢查 NGINX 配置的正確性。 nginx -t 命令的結果被指派給一個變量,並且透過條件我將子字串 - 語法與變數輸出的結果進行比較。不幸的是,它沒有成功。我究竟做錯了什麼?
CHECK="nginx -t"
SUB='syntax is ok'
if [[ "eval $CHECK" == *"$SUB"* ]]; then
echo "syntax is ok"
else
echo "syntax is not ok"
fi
謝謝!
答案1
nginx -t
將提供有用的錯誤代碼,因此您可以簡單地使用:
if nginx -t > /dev/null 2>&1; then
echo "syntax is ok"
else
echo "syntax is not ok"
fi