💻 Разбор домашних заданий

К оглавлению урока

⚡ Решения ДЗ

# ДЗ 18: permission_checker.sh
#!/bin/bash
FILE_LIST=$(ls -p /opt/YOURGROUP | grep -v /)
for FILE in $FILE_LIST
do
    if [[ "$FILE" == *.sh ]]; then
        chmod +x "/opt/YOURGROUP/$FILE"
        echo "Added exec permission: $FILE"
    fi
done

# ДЗ 19: feature + amend + merge
git checkout -b feature
git add README.md .gitignore && git commit -m "Add feature"
git commit --amend -m "Add feature ammend"
git checkout main && git merge feature
history > history.txt && git add history.txt && git commit -m "Add history"

Разбор ДЗ 18: permission_checker.sh

Задание

Работаем на сервере linux.itcareerhub.de. Создать скрипт permission_checker.sh, сделать его исполняемым. Скрипт получает список прав на файлы внутри директории /opt/ВАШАГРУППА, и если среди них есть файлы .sh, то добавляет им права на исполнение.

Решение (из источника)

# permission_checker.sh
#!/bin/bash
# Получаем список всех файлов в директории
FILE_LIST=$(ls -p /opt/YOURGROUP | grep -v /)
# Перебираем каждый файл
for FILE in $FILE_LIST
do
    # Проверяем, является ли файл .sh
    if [[ "$FILE" == *.sh ]]; then
        # Добавляем права на исполнение
        chmod +x "/opt/YOURGROUP/$FILE"
        echo "Added exec permission: $FILE"
    fi
done
echo "Done! Exec permissions added successfully."

Как запустить

# Создаём скрипт
nano permission_checker.sh

# Делаем исполняемым
chmod +x permission_checker.sh

# Запускаем
./permission_checker.sh

Разбор ДЗ 19: feature + amend + merge

Задание

Создать репозиторий GitHub с .gitignore; склонировать; создать ветку feature с изменениями в README.md и .gitignore; запушить; git commit --amend (добавить слово ammend); git merge feature на main; history > history.txt + commit + push.

Решение (из источника)

# 1. Создаём и клонируем репозиторий
git clone git@github.com:USERNAME/homework12.git
cd homework12

# 2. Создаём ветку feature
git checkout -b feature

# 3. Вносим изменения и коммитим
echo "## Feature changes" >> README.md
echo "*.log" >> .gitignore
git add README.md .gitignore
git commit -m "Add feature changes"

# 4. Пушим feature
git push origin feature

# 5. git commit --amend (добавляем слово ammend)
git commit --amend -m "Add feature changes ammend"
git push --force origin feature  # нужен force т.к. изменился хэш

# 6. Переключаемся на main и делаем merge
git checkout main
git merge feature

# 7. Создаём history.txt и пушим
history > history.txt
git add history.txt
git commit -m "Add command history"
git push origin main