Command-Line-Interface

退出程式碼的腳本返回摘要

  • August 15, 2013

我使用這個命令來測試我的 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命令的結果, run tidy,然後在發現錯誤時增加一個計數器(我假設tidy會在錯誤時生成一個非零返回碼)。

一旦你遍歷了文件,如果有任何錯誤,你可以exit 1,並且明確地表明exit 0事情是否成功完成總是一個好習慣。

引用自:https://serverfault.com/questions/531234