Command-Line-Interface
退出程式碼的腳本返回摘要
我使用這個命令來測試我的 html 頁面是否有錯誤:
find . -iname '*html' -type f -print -exec /usr/local/bin/tidy -q -e {} \;
如果 tidy 發現任何錯誤,我想獲得退出程式碼 > 0。
find 總是返回我 0。
有沒有辦法從 tidy 總結退出程式碼,並從 find 或任何其他包裝腳本返回它?
試試這個:
#!/bin/bash NUM_FAILS=0 for FILE in $(find . -iname '*.html' -type f -print); do /usr/local/bin/tidy -q -e ${FILE} if [ $? -ne 0 ]; then ((NUM_FAILS++)) fi done if [ ${NUM_FAILS} -gt 0 ]; then echo -e "There were ${NUM_FAILS} failed files." exit 1 fi exit 0
說明:您需要遍歷
find
命令的結果, runtidy
,然後在發現錯誤時增加一個計數器(我假設tidy
會在錯誤時生成一個非零返回碼)。一旦你遍歷了文件,如果有任何錯誤,你可以
exit 1
,並且明確地表明exit 0
事情是否成功完成總是一個好習慣。