if/else: проверка наличия файла
Скрипт, который ведёт себя по-разному в зависимости от наличия файла.
Контекст
Базовая ветка «делать X, если условие Y» составляет половину скриптов на проде: если порт занят, перейти на запасной; если конфига нет, взять дефолтный; если место кончается, алертить.
Подсказки
[ -e file ]— путь существует (любого типа).[ -f file ]— обычный файл.[ -d dir ]— каталог.[ -L link ]— симлинк.[ -r file ]/[ -w file ]/[ -x file ]— читается / пишется / исполняется.- Сокращённый if:
[ -e file ] && echo exists || echo missing(но опасно: если echo exists упадёт, выполнится echo missing). - Классическое:
if … then … else … fi.
Практика в браузере
Linux запускается прямо здесь. После решения сохраним прогресс автоматически.
exists или missing
Создайте /root/check.sh, который проверяет файл /tmp/secret. Если файл есть, печатает exists, если нет — missing. Сейчас файла /tmp/secret нет; скрипт должен работать в обоих случаях.
0%
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс