Ошибки ДЗ 18: permission_checker.sh
Ошибка 1: непонимание подстановки команды
Конструкция $(ls -p /opt/ГРУППА | grep -v /) — это подстановка команды: результат выполнения команды помещается в переменную. Студенты часто не понимают, зачем нужны $().
# Неправильно (без подстановки — получим строку, а не список файлов):
FILE_LIST="ls -p /opt/YOURGROUP | grep -v /"
# Правильно:
FILE_LIST=$(ls -p /opt/YOURGROUP | grep -v /)
Ошибка 2: пропуск точки с запятой в if
В условии if [[ "$FILE" == *.sh ]] после ]] перед then нужна точка с запятой или перенос строки.
# Ошибка — пропущена ; перед then:
if [[ "$FILE" == *.sh ]] then
# Правильно (с ; или с переносом строки):
if [[ "$FILE" == *.sh ]]; then
Ошибка 3: незакрытый if или цикл
Каждый if закрывается fi; каждый for/while закрывается done. Забыть закрыть — синтаксическая ошибка.
# Правильная структура:
for FILE in $FILE_LIST
do
if [[ "$FILE" == *.sh ]]; then
chmod +x "$FILE"
fi
done
Ошибка 4: пробелы между ключами и аргументами
В bash аргументы и ключи разделяются пробелами. Ошибка при слипании:
# Неправильно:
chmod+x "$FILE"
# Правильно:
chmod +x "$FILE"
Ошибки ДЗ 19: feature + amend + merge
Ошибка 1: неправильный URL репозитория
При клонировании часто путают HTTPS и SSH URL или допускают опечатки в имени пользователя/репозитория.
# HTTPS URL:
git clone https://github.com/USERNAME/homework12.git
# SSH URL (предпочтительнее после настройки ключей):
git clone git@github.com:USERNAME/homework12.git
Ошибка 2: неправильное имя файла .gitignore
Файл должен называться точно .gitignore (с точкой в начале, без расширения). Файл gitignore.txt или .gitignore.txt не будет работать.
Ошибка 3: нарушение последовательности при работе с feature
Типичная ошибка — забыть переключиться на ветку feature перед коммитом, или сделать изменения на main вместо feature.
# Сначала убедитесь, что вы на нужной ветке
git status # покажет текущую ветку
git checkout feature # или git switch feature
Ошибка 4: неправильное использование git commit --amend
После git commit --amend хэш коммита изменился. Простой git push на уже запушенную ветку завершится ошибкой. Нужен git push --force origin feature.
git push --force на ветку feature допустимо (это личная ветка, которую вы создали). Но git push --force на main — никогда, если с этой веткой работает команда!
Ошибка 5: забыть git add перед коммитом
После изменения файлов нужно их добавить в индекс (git add) перед коммитом. Без git add изменения не попадут в коммит.