Bash
apachectl 擷取或抑制 configtest 的“語法 OK”
Apache
configtest
對擷取語法錯誤很有用。成功時它會列印“Syntax OK”,並且apachectl configtest
在 bash 腳本中執行時我想抑制它。我已經嘗試了通常的輸出重定向到
/dev/null
,將結果分配給一個變數,如下所示:AOUTPUT=$(/usr/sbin/apache2ctl -t && /usr/sbin/apache2ctl graceful)
但始終輸出“語法正常”。
這能被壓制嗎?
在裡面
$()
你仍然可以將 stderr 重定向為與 stdout 相同,然後它將被分配擷取。例如:if AOUTPUT=$(/usr/sbin/apache2ctl -t 2>&1) then /usr/sbin/apache2ctl graceful else rc=$?; printf "%s\n" "$AOUTPUT" >&2; exit $rc fi
我添加了,
>&2
所以錯誤仍然出現在 stderr 上,並exit
嘗試從命令中複製原始錯誤程式碼,但只有在將其放入 shell 腳本並希望保留這些功能時,才真正需要它們。