
Tengo un proyecto con algunos archivos lua y bash. Quiero recorrer todos los archivos y, según el asunto, quiero ejecutar una verificación de validez.
Respuesta1
Puede usar find
y awk
para verificar la primera línea (su awk debe admitir FNR, como lo hacen los awks POSIX) y agregar algunos patrones de búsqueda para encontrar (como excluir carpetas ocultas):
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
Nota: utilícelo IFS=
para evitar dividir nombres de archivos que contengan uno de los $IFS
, por ejemplo:'a b'