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'

관련 정보