проверка достоверности всех файлов в папке в зависимости от shebang

У меня есть проект с некоторыми lua и некоторыми файлами bash. Я хочу перебрать все файлы, и в зависимости от shebang я хочу выполнить проверку действительности.

  • Несколько аргументов в линиях shebang
  • Нет такого файла или каталога, но я могу это увидеть!
  • Лучше ли использовать строку shebang для выполнения сценария?
  • При знаке после shebang?
  • запустить скрипт perl с неизвестным местоположением perl
  • Вызов скрипта с sudo игнорирует shebang
  • Почему я могу передать аргументы в / usr / bin / env в этом случае?
  • Почему «she-bang» начинается с «#!»?
  • One Solution collect form web for “проверка достоверности всех файлов в папке в зависимости от shebang”

    Вы можете использовать find и awk для проверки первой строки (ваш awk должен поддерживать FNR, например, POSIX awks) и добавлять некоторые шаблоны поиска (например, исключая скрытые папки):

     echo "check bash files ..." find . -not -path '*/\.*' \ -type f -exec awk 'FNR == 1 && /^#!.*sh/{print FILENAME}' {} + | \ while IFS= read -rf; do echo "checking $f ..." bash -n "$f" done 

    Примечание: используйте IFS= чтобы избежать разделения имен файлов, содержащих один из $IFS , например: 'a b'

    Linux и Unix - лучшая ОС в мире.