Разбор ДЗ 15 — myfirstbashscript.sh
Задание: написать bash-скрипт, который выводит дату, приветствует по имени, показывает текущую директорию, считает процессы bioset (без grep) и выводит права /etc/passwd.
Решение
# myfirstbashscript.sh
#!/bin/bash
USER=Andrew
date
echo hello $USER!
pwd
ps -ef | grep bioset | grep -v grep | wc -l
ls -la /etc/passwd | awk '{print $1}'
Разбор ключевых строк
USER=Andrew— переменная без пробелов вокруг=. Читается как$USER.ps -ef | grep bioset | grep -v grep | wc -l— конвейер из 4 команд:ps -ef— все процессыgrep bioset— фильтруем по имениgrep -v grep— исключаем сам процесс grep (иначе он тоже попадёт в список!)wc -l— считаем строки = количество процессов
ls -la /etc/passwd | awk '{print $1}'— выводls -laпередаётся в awk, который берёт первое поле (права, например-rw-r--r--).
Частые ошибки в ДЗ 15
- Неверный путь к скрипту (нет
./перед именем) - Неверная переменная
USER— использование без$:echo USERвместоecho $USER - Ошибка в написании shebang:
#! /bin/bash(пробел после #!) — некоторые системы не распознают - Пропущен
grep -v grep— в результате подсчёта появляется лишний процесс (сам grep) - Неверная последовательность команд в конвейере — данные передаются слева направо через
|
Разбор ДЗ 16 — репозиторий git-branch с веткой gitignore
Задание: создать репозиторий git-branch, инициализировать локальный репозиторий, создать ветку gitignore, добавить .gitignore, закоммитить и отправить.
Решение — шаг за шагом
# 1. Инициализировать локальный репозиторий
mkdir git-branch
cd git-branch
git init
# 2. Создать ветку gitignore и переключиться на неё
git checkout -b gitignore
# 3. Создать файл .gitignore (пример содержимого)
# Можно скачать с https://github.com/aliaskov/bashscripts/blob/master/.gitignore
# 4. Добавить .gitignore в индекс
git add .gitignore
# 5. Закоммитить
git commit -m "Add .gitignore"
# 6. Подключить удалённый репозиторий и отправить ветку
git remote add origin git@github.com:YOUR_USERNAME/git-branch.git
git push origin gitignore
Пример корректного .gitignore
# Игнорировать системные файлы macOS
.DS_Store
# Игнорировать IDE-файлы
.idea/
.vscode/
# Игнорировать зависимости
node_modules/
__pycache__/
# Игнорировать логи
*.log
# Игнорировать переменные окружения
.env
Частые ошибки в ДЗ 16
- Неправильное название репозитория на GitHub — должно совпадать с локальным.
- Забыли инициализировать локальный репозиторий:
git initобязателен. - Ошибка при создании ветки: некоторые используют
git branch gitignoreбез-bи не переключаются на неё. - Неправильное содержимое
.gitignore— если скопировать лишнее, файл перестаёт работать корректно. - Неверная последовательность:
git add→git commit→git push. Нарушение порядка приводит к ошибкам.