Ошибки из ДЗ занятия 21 (cron + tar)
Ошибки ниже зафиксированы из реальных работ студентов — это не теоретические примеры, а типичные грабли.
Ошибка 1: Неправильный синтаксис диапазона {1..10}
# НЕПРАВИЛЬНО — использование других обозначений:
for run in [1..10]; do ... # квадратные скобки — не то
for run in (1..10); do ... # круглые скобки — не то
for run in 1 to 10; do ... # слово "to" — не синтаксис bash
# ПРАВИЛЬНО:
for run in {1..10}; do ...
Фигурные скобки {1..10} — это bash brace expansion. Синтаксис строго такой.
Ошибка 2: Забыть $ перед переменной run
# НЕПРАВИЛЬНО — переменная не подставится:
echo run # выведет буквально "run"
touch run'_'$DATE # имена файлов будут "run_20.04.23"
# ПРАВИЛЬНО:
echo $run
touch $run'_'$DATE
Переменная run без знака доллара интерпретируется как литерал — буквальная строка «run».
Ошибка 3: Лишние символы в touch — файлы не создаются
# НЕПРАВИЛЬНО — пробелы или другие символы нарушают имя:
touch $run _ $DATE # создаст ТРИ разных файла: $run, _, $DATE
touch "$run_$DATE" # $run_ — неопределённая переменная (run_ не объявлена)
# ПРАВИЛЬНО:
touch $run'_'$DATE # одинарные кавычки — буквальный символ _
Ошибка 4: Что выполняется в цикле — граница do...done
# Повторяется только то, что ВНУТРИ do...done:
for run in {1..10}
do
DATE=$(date +"%d.%m.%y") # ВНУТРИ цикла — выполняется 10 раз
touch $run'_'$DATE # ВНУТРИ цикла
done
echo "Готово" # ВНЕ цикла — выполняется 1 раз
Частая ошибка: поставить done раньше, чем нужно, — тогда часть команд выполнится один раз вместо десяти.
Ошибка 5: crontab -r вместо crontab -e
# ОПАСНО — удаляет ВСЕ задания пользователя без подтверждения:
crontab -r
# БЕЗОПАСНО — открыть редактор для правки:
crontab -e # закомментировать/удалить нужную строку
Будьте внимательны:
-r и -e различаются одной буквой, но действие кардинально разное. crontab -r не спрашивает подтверждения.
Ошибки из ДЗ занятия 22 (Git fork + PR)
Ошибка 6: Неправильное направление PR
# НЕПРАВИЛЬНО — PR из оригинала в форк:
Base repository: your-username/learning_git <- head: it-career-hub/learning_git
# ПРАВИЛЬНО — PR из вашего форка в оригинал:
Base repository: it-career-hub/learning_git <- head: your-username/learning_git
Проверяйте направление перед нажатием «Create pull request». Base — куда сливаем, Head — откуда берём изменения.
Ошибка 7: Push прямо в main без ветки
# Допустимо в учебном контексте, но плохая практика:
git push origin main # коммитим прямо в main форка
# Лучше создать ветку для изменений:
git checkout -b add-my-name
git add ...
git commit -m "Add my name"
git push origin add-my-name
# Затем открыть PR из ветки add-my-name → main
В реальных проектах прямые коммиты в main запрещены правилами branch protection. Привыкайте работать через ветки.
Ошибка 8: Неправильные ключи tar при создании архива
# НЕПРАВИЛЬНО — флаг -f должен идти перед именем файла:
tar -czf archive.tar.gz -f backup/ # -f встречается дважды — ошибка
# НЕПРАВИЛЬНО — перепутаны -c и -x:
tar -xzf archive.tar.gz /etc # -x = извлечь, а не создать!
# ПРАВИЛЬНО:
tar -czf archive.tar.gz /etc # -c создать, -z gzip, -f имя_файла