Создание Shell-скриптов для обработки вывода команд

Red Hat Enterprise LinuxBeginner
Практиковаться сейчас

Введение

В рамках этого испытания вы научитесь создавать простые shell-скрипты, предназначенные для обработки вывода системных команд. Это фундаментальный навык для автоматизации рутинных задач и извлечения специфической информации из инструментов командной строки. Вы узнаете, как перехватывать вывод команд, манипулировать данными и использовать обработанную информацию внутри вашего сценария. Данное задание поможет вам развить практические навыки программирования на Bash, необходимые для системного администрирования.

Создание скрипта для обработки вывода команды ls

На этом этапе вам предстоит создать shell-скрипт, который перехватывает вывод команды ls -l, извлекает из него конкретные данные (размер и имя файла) и отображает их в структурированном виде. Это упражнение демонстрирует принципы парсинга вывода команд — одну из самых частых задач в системном скриптинге.

Задачи

  • Создать shell-скрипт, который сохраняет вывод команды ls -l.
  • Извлечь размер файла и его имя из каждой строки вывода ls -l.
  • Вывести полученную информацию в строго определенном формате.

Требования

  • Создайте скрипт в директории ~/project/scripts.

  • Назовите файл скрипта process_ls.sh.

  • Скрипт должен начинаться с шебанга #!/bin/bash.

  • Скрипт должен сохранять результат выполнения ls -l в переменную.

  • Для каждого файла, перечисленного в выводе ls -l, необходимо извлечь его размер и имя.

  • Вывод данных должен соответствовать следующему шаблону:

    File size: <file_size> bytes
    File name: <file_name>

    Замените <file_size> на фактический размер файла в байтах, а <file_name> — на имя файла.

Пример

Предположим, в вашей директории есть файлы. При запуске скрипта результат должен выглядеть примерно так:

[labex@host ~]$ cd ~/project/scripts
[labex@host scripts]$ nano process_ls.sh
[labex@host scripts]$ chmod +x process_ls.sh
[labex@host scripts]$ ./process_ls.sh
File size: 1300 bytes
File name: process_ls.sh
[labex@host scripts]$

Конкретные размеры и имена файлов будут зависеть от содержимого вашей текущей рабочей директории.

Подсказки

  • Для перехвата вывода команды в переменную используйте подстановку команд (например, variable=$(command)).
  • Чтобы обработать вывод построчно, можно использовать цикл while read.
  • Команда ls -l выводит подробную информацию. Вам могут понадобиться такие инструменты, как awk или cut, чтобы извлечь конкретные столбцы (поля) из каждой строки.
  • Помните, что первая строка вывода ls -l обычно начинается со слова "total" — её следует пропустить при обработке списка файлов.
  • Не забудьте наделить скрипт правами на исполнение с помощью chmod +x.
✨ Проверить решение и практиковаться

Резюме

В этом испытании вы научились создавать shell-скрипты для обработки вывода команд. В частности, вы перехватили вывод ls -l, извлекли размеры и имена файлов и отобразили их в отформатированном виде. Это упражнение закрепило ключевые концепции написания скриптов: подстановку команд, циклы while read и обработку текста с помощью awk. Эти навыки критически важны для автоматизации задач, анализа лог-файлов и извлечения данных из различных консольных утилит, что является повседневной обязанностью системного администратора и важной частью экзамена RHCSA.