Обработка аргументов в bash-скриптах

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Окружение

LabEx использует Red Hat Universal Base Image 9 (UBI9) для имитации экзаменационного окружения. Это окружение может не совпадать с реальным окружением экзамена RHCSA, но оно хорошо представляет задачи, с которыми вы столкнетесь на экзамене.

В окружении есть два пользователя:

  • labex: Стандартный пользователь с привилегиями sudo, пароль: labex.
  • root: Системный администратор, пароль: redhat.

В задании представлены настоящие экзаменационные вопросы, а также объяснения, требования и автоматические скрипты проверки, которые помогут вам убедиться, что задача выполнена. Это эффективно имитирует области знаний, охватываемые экзаменом RHCSA.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL shell(("Shell")) -.-> shell/VariableHandlingGroup(["Variable Handling"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) shell(("Shell")) -.-> shell/FunctionsandScopeGroup(["Functions and Scope"]) shell/VariableHandlingGroup -.-> shell/variables_usage("Variable Usage") shell/VariableHandlingGroup -.-> shell/param_expansion("Parameter Expansion") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") shell/FunctionsandScopeGroup -.-> shell/func_def("Function Definition") subgraph Lab Skills shell/variables_usage -.-> lab-416107{{"Обработка аргументов в bash-скриптах"}} shell/param_expansion -.-> lab-416107{{"Обработка аргументов в bash-скриптах"}} linux/chmod -.-> lab-416107{{"Обработка аргументов в bash-скриптах"}} shell/func_def -.-> lab-416107{{"Обработка аргументов в bash-скриптах"}} end

Создание и настройка bash-скрипта

Давайте создадим bash-скрипт, который будет обрабатывать и отображать информацию о переданных ему аргументах.

Задачи

  • Создайте bash-скрипт с именем argts.sh в директории /home/labex/
  • Сделайте скрипт исполняемым
  • Реализуйте скрипт так, чтобы он отображал следующую информацию:
    • Общее количество переданных аргументов
    • Значение первого аргумента
    • PID (идентификатор процесса) скрипта
    • Все переданные аргументы

Требования

  • Скрипт должен быть создан по пути /home/labex/argts.sh
  • Скрипт должен содержать правильную строку shebang: #!/bin/bash
  • Скрипт должен быть исполняемым
  • Скрипт должен использовать соответствующие специальные переменные bash для отображения требуемой информации
  • Вывод должен быть отформатирован четко с заголовочной строкой из знаков равенства

Пример

При запуске скрипта с аргументами он должен выводить информацию, похожую на следующую:

$ /home/labex/argts.sh one two three
===========================
The total count of the supp argts: 3
The value of the first arg is: one
The PID of the script is : 12345
All the argts: one two three
✨ Проверить решение и практиковаться

Резюме

В этом задании вы создали bash-скрипт, который обрабатывает и отображает информацию о аргументах командной строки. Это упражнение демонстрирует важные концепции программирования на bash, такие как доступ к специальным переменным ($#, $1, $$, $*), создание исполняемых скриптов и форматирование вывода. Эти навыки важны для системных администраторов и разработчиков, которые должны создавать гибкие инструменты командной строки и эффективно обрабатывать пользовательский ввод.