いくつかのluaといくつかのbashファイルを含むプロジェクトがあります。私はすべてのファイルを繰り返したいと思い、shebangに従って検証を実行したいと思います。
答え1
最初の行を使用find
して awk
確認し(awkはPOSIX awksと同様にFNRをサポートする必要があります)、いくつかの検索パターンを追加することができます(たとえば、隠しフォルダを除く)。
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'