Поиск по сайту:

Как читать аргументы командной строки в сценариях оболочки?


Чтение пользовательского ввода является одной частью уравнения. В сегодняшней статье мы научимся читать аргументы командной строки в сценариях оболочки. Сценарии оболочки являются важным инструментом для любого пользователя Linux. Они играют важную роль в автоматизации повседневных задач и создании собственных команд или макросов.

Эти сценарии оболочки могут получать ввод от пользователя в виде аргументов.

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

Что такое аргументы командной строки?

Аргументы командной строки — это параметры, которые передаются сценарию при его выполнении в оболочке bash.

В Linux они также известны как позиционные параметры.

Мы используем аргументы командной строки для обозначения позиции в памяти, где хранится команда и связанные с ней параметры. Понимание аргументов командной строки важно для людей, которые изучают сценарии оболочки.

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

Как сценарии оболочки понимают аргументы командной строки

Аргументы командной строки помогают сделать сценарии оболочки интерактивными для пользователей. Они помогают сценарию идентифицировать данные, с которыми ему нужно работать. Следовательно, аргументы командной строки являются неотъемлемой частью любого практического использования сценариев оболочки.

В оболочке bash есть специальные переменные, зарезервированные для указания аргументов, которые мы передаем через сценарий оболочки. Bash сохраняет эти переменные численно ($1, $2, $3, … $n).

Здесь первый аргумент командной строки в нашем сценарии оболочки равен $1, второй — $2, а третий — $3. Так продолжается до 9-го аргумента. В переменной $0 хранится имя скрипта или самой команды.

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

Специальный символ $# хранит общее количество аргументов. У нас также есть $@ и $* в качестве подстановочных знаков, которые используются для обозначения всех аргументов. Мы используем $$, чтобы найти идентификатор процесса текущего сценария оболочки, а $? можно использовать для печати кода выхода для нашего скрипта.

Чтение аргументов командной строки в сценариях оболочки

Теперь мы развили понимание аргументов командной строки в Linux. Теперь пришло время использовать эти знания для практического применения команды netstat.

В этом руководстве мы рассмотрим пример, чтобы узнать, как использовать аргументы командной строки в сценарии оболочки.

Во-первых, мы создадим сценарий оболочки, чтобы продемонстрировать работу всех зарезервированных переменных, которые мы обсуждали в предыдущем разделе. Используйте nano или любой предпочитаемый редактор и скопируйте следующее.

Это сценарий оболочки, который мы планируем использовать для этой цели.

#!/bin/sh
echo "Script Name: $0"
echo "First Parameter of the script is $1"
echo "The second Parameter is $2"
echo "The complete list of arguments is $@"
echo "Total Number of Parameters: $#"
echo "The process ID is $$"
echo "Exit code for the script: $?"

Когда мы закончим, мы сохраним скрипт как PositionalParameters.sh и выйдем из нашего текстового редактора.

Теперь мы откроем командную строку в нашей системе и запустим сценарий оболочки со следующими аргументами.

./PositionalParameters.sh learning command line arguments

Сценарий будет работать с указанными нами аргументами и использовать позиционные параметры для генерации вывода. Если вы правильно выполнили шаг, вы должны увидеть следующий экран.

Наш вывод показывает правильный вывод, заменяя зарезервированные переменные соответствующим аргументом, когда мы его вызывали.

Процесс был запущен под идентификатором процесса 14974 и завершен с кодом выхода 0.

Подведение итогов

Умение читать аргументы командной строки в сценариях оболочки является важным навыком, поскольку позволяет создавать сценарии, которые могут принимать ввод от пользователя и генерировать вывод на основе логического пути.

С помощью аргументов командной строки ваши сценарии могут значительно упростить повторяющиеся задачи, с которыми вам, возможно, придется сталкиваться ежедневно, создавать собственные команды, экономя при этом время и силы.

Мы надеемся, что эта статья помогла вам понять, как читать аргументы командной строки в сценарии оболочки. Если у вас есть какие-либо комментарии, вопросы или предложения, не стесняйтесь обращаться к нам в комментариях ниже.