Перейти к содержимому

Bash-скрипты: аргументы, условия и циклы

Напишите скрипт, который проверяет аргументы и коды ошибок, и скрипт с циклом по журналам.

  • linux.bash

Задания

  1. 1. Счётчик строк20 очк.

    Создайте исполняемый скрипт ~/bin/count.sh, который:

    • при запуске с одним аргументом-файлом выводит только число строк в нём (count.sh ~/data/list.txt → 5);
    • при запуске без аргументов выводит подсказку об использовании в поток ошибок и завершается с кодом 1.
  2. 2. Нет файла — другой код15 очк.

    Доработайте ~/bin/count.sh: если переданного файла не существует, скрипт пишет сообщение в поток ошибок и завершается с кодом 2.

  3. 3. Отчёт об ошибках20 очк.

    Создайте исполняемый скрипт ~/bin/errors.sh, который для каждого файла *.log в ~/logs выводит строку «имя-файла количество-строк-с-ERROR», например app.log 3. Порядок — по имени файла, как его выдаёт шаблон.

Вводные и справка по командам

Два небольших инструмента, которые пригодятся в работе: счётчик строк с проверкой аргументов и отчёт об ошибках по всем журналам. Скрипты кладите в ~/bin. Проверка запускает их от вашего имени из другого каталога, поэтому используйте абсолютные пути или $HOME.

Справка

КонструкцияЧто делает
#!/bin/bashпервая строка скрипта
$1, $#первый аргумент, число аргументов
if [ $# -ne 1 ]; then ... fiесли аргументов не ровно один
[ -f "$1" ]существует ли обычный файл
echo "текст" >&2вывести в поток ошибок
exit 2завершить скрипт с кодом 2
wc -l < "$1"количество строк — только число, без имени файла
for f in "$HOME"/logs/*.log; do ... doneцикл по файлам
basename "$f"имя файла без пути
grep -c ERROR "$f"число строк с ERROR
chmod +x файлсделать скрипт исполняемым

Создать файл со скриптом можно в редакторе: nano ~/bin/count.sh (Ctrl+O, Enter — сохранить; Ctrl+X — выйти). Проверить код возврата последней команды: echo $?.

Bash-скрипты: аргументы, условия и циклы: практика в терминале онлайн — CyberLab