shebang에 따라 폴더의 모든 파일이 유효한지 확인하십시오.

shebang에 따라 폴더의 모든 파일이 유효한지 확인하십시오.

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'

관련 정보