Shell-Script

有效性檢查文件夾中的所有文件,具體取決於 shebang

  • July 7, 2017

我有一個包含一些 lua 和一些 bash 文件的項目。我想遍歷所有文件,並根據我想執行有效性檢查的 shebang。

您可以使用findand awk檢查第一行(您的 awk 必須支持 FNR,就像 POSIX awks 一樣)並添加一些搜尋模式來查找(例如排除隱藏文件夾):

echo "check bash files ..."
find . -not -path '*/\.*' \
 -type f -exec awk 'FNR == 1 && /^#!.*sh/{print FILENAME}' {} + | \
 while IFS= read -r f; do 
   echo "checking $f ..."
   bash -n "$f"
done

注意:用於IFS=避免拆分包含 之一的文件名$IFS,例如:'a b'

引用自:https://unix.stackexchange.com/questions/375907