Полный текст
Пять проблем Bash, которые ломают скрипты в самый неудачный моментБазовый заголовок #!/bin/bash с директивой set -e создаёт ложное чувство безопасности. Конструкция set -e молча пропускает падения, если команда находится внутри цикла while или слева от ||.Классический пайплайн find | while read инициализирует изолированный subshell. После завершения цикла подоболочка уничтожается вместе с локальными переменными, обнуляя счётчики в родительском процессе.Инкрементация ((counter++)) при нулевом старте возвращает код 1, обрывая выполнение, а пустые глобы вроде *.gz передаются в функции как буквальные строки.Соберём эталонный заголовок скрипта, который блокирует подобные уязвимости.