>_ IzzyLab

Практическое задание

Обезопась cd

средне

Скрипт /root/clean.sh переходит в каталог и удаляет там временные файлы. shellcheck предупреждает, что cd без проверки опасен: если переход не удастся, скрипт продолжит работу не там, где ожидалось. Исправь так, чтобы линтер молчал, а поведение осталось прежним.

Что потренируешь:
  • shellcheck
  • SC2164
  • cd
  • обработка ошибок
  • ||

Разбор темы

Замечание SC2164 про то, что cd может провалиться (нет каталога, нет прав), а скрипт этого не заметит и продолжит выполняться в неожиданном месте — особенно опасно, если дальше идёт удаление файлов. Идиома надёжного shell: критичная команда должна прерывать скрипт при неудаче. Для этого к ней через оператор || (срабатывает только при ненулевом коде возврата) дописывают аварийное действие — выход из скрипта.

Что проверяется

  1. shellcheck без замечаний
  2. cd защищён обработкой ошибки

Как это выглядит