Команды Linux

Пример Linux «getopts»

Пример Linux «getopts»
«Getopts» - очень полезная команда в Linux, которая в основном включается в сценарии bash, чтобы принимать флаги и аргументы в качестве входных данных от пользователя. Чтобы подробнее рассказать об использовании этой команды в Linux Mint 20, мы поделимся с вами двумя различными примерами ее использования в этой статье.

Примеры «getopts» в Linux Mint 20:

Для упрощения и лучшего понимания команды «getopts» в Linux Mint 20 мы разработали для вас два примера сценария. Прежде чем переходить к этим сценариям, вы можете ознакомиться со справочным руководством по команде «getopts» в терминале Linux Mint 20, чтобы получить общее представление о синтаксисе этой команды. Вы можете увидеть справочное руководство по этой команде, выполнив команду «help»:

$ getopts --help

Справочное руководство по команде «getopts» будет содержать краткое описание использования этой команды вместе с ее синтаксисом, как показано на изображении ниже:

Теперь, когда мы просмотрели справочное руководство по команде «getopts», мы можем продолжить наши примеры сценариев следующим образом:

Случай №1: Передача флагов сценарию Bash для его выполнения в Linux Mint 20:

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

Шаг №1: Написание сценария Bash:

Сначала мы напишем сценарий bash в нашем домашнем каталоге. Мы назвали этот файл getopts.ш. Содержимое этого сценария bash показано на изображении ниже. В сценарии bash, показанном ниже, у нас есть цикл «while», который выполняется командой «getopts». Здесь эта команда «getopts» используется для ввода флага от пользователя. Значение этого флага может быть «r», «y» или «g», представляющее «красный», «желтый» и «зеленый» цвета соответственно. Переменная option будет использоваться для хранения значения флага, предоставленного пользователем. Затем мы использовали оператор «case» для значения предоставленного флага, который будет отображать настраиваемое сообщение в зависимости от значения флага «option». Наконец, мы закрыли блок «case» с помощью оператора «esac» и блок «do» с помощью оператора «done».

Шаг № 2: Тестирование сценария Bash:

После создания и сохранения нашего сценария bash пора его запустить. Мы будем тестировать все кейсы один за другим. Во-первых, мы запустим сценарий bash с флагом «-r», чтобы увидеть, дает ли он правильный результат или нет, следующим образом:

$ bash getopts.sh -r

Настроенный вывод нашего сценария bash с флагом «-r» показан на изображении ниже:

Теперь мы запустим сценарий bash с флагом «-y», чтобы увидеть, дает ли он правильный результат или нет, следующим образом:

$ bash getopts.застенчивый

Настроенный вывод нашего сценария bash с флагом «-y» показан на изображении ниже:

Теперь мы запустим сценарий bash с флагом «-g», чтобы увидеть, дает ли он правильный результат или нет, следующим образом:

$ bash getopts.sh -g

Настроенный вывод нашего сценария bash с флагом «-g» показан на изображении ниже:

Наконец, мы запустим наш bash-скрипт с любым случайным флагом, i.е. недопустимый флаг или флаг, не упомянутый в нашем сценарии bash, говорит «-a» следующим образом:

$ bash getopts.ш-а

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

Случай № 2: Передача флагов вместе с аргументами в сценарий Bash для его выполнения в Linux Mint 20:

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

Шаг №1: Написание сценария Bash:

Сценарий bash, используемый для этого случая, показан на изображении ниже и очень похож на тот, который мы создали для нашего случая №1. Единственная разница в том, что на этот раз мы не разрешаем использование нескольких флагов. Пользователю разрешено вводить только флаг «-r». Однако двоеточие «:» после флага «r» в сценарии bash указывает, что пользователь также должен предоставить аргумент вместе с флагом. Этот аргумент будет сохранен в переменной «OPTARG» по умолчанию. Для отображения значения предоставленного аргумента с помощью команды «echo» мы использовали символ «$» перед переменной «OPTARG».

Шаг № 2: Тестирование сценария Bash:

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

$ bash getopts.sh -r черный

Настроенный вывод нашего сценария bash с флагом «-r» и аргументом «черный» показан на изображении ниже:

Теперь мы проверим этот сценарий с недопустимым флагом и допустимым аргументом следующим образом:

$ bash getopts.ш-черный

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

Теперь мы запустим этот сценарий bash, опуская флаг и просто передавая допустимый аргумент следующим образом:

$ bash getopts.ш черный

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

Наконец, мы запустим этот сценарий bash, опуская аргумент и просто передавая действительный флаг следующим образом:

$ bash getopts.sh -r

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

Заключение:

Эти два примера прекрасно иллюстрируют использование команды «getopts» в сценарии bash в Linux Mint 20. Вы даже можете создавать более сложные сценарии в bash и объединять их в пары с помощью команды «getopts», чтобы принимать более одного аргумента и флагов от пользователя в качестве входных данных.

Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...
OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...
Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...