일부 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'