
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'