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

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

  • Создание shebang, указывающее переносимо интерпретатору в папке сценария
  • Почему следующий скрипт удаляет себя?
  • Линия Shebang для «run with $ SHELL»
  • Всегда ли shebang совпадает с каталогом установки интерпретатора?
  • может ли что-то помимо shebang установить переводчика?
  • «Нет такого файла» с ksh, но скрипт работает с ksh -x?
  • Еще одна синтаксическая ошибка около неожиданного токена `('
  • строка shebang не работает с cr-lf
  • 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 - лучшая ОС в мире.