Команди Linux

Приклад getopts для Linux

Приклад getopts для Linux
"Getopts" - це дуже корисна команда в Linux, яка в основному включається в скрипти bash, щоб брати прапори та аргументи як вхідні дані від користувача. Для подальшого детального вивчення використання цієї команди в Linux Mint 20, ми поділимося з вами двома різними прикладами її використання в цій статті.

Приклади “getopts” у Linux Mint 20:

Для легшого та кращого розуміння команди “getopts” у Linux Mint 20, ми розробили для вас два приклади сценаріїв. Перш ніж перейти до цих сценаріїв, ви можете ознайомитися з довідковим посібником команди “getopts” у терміналі Linux Mint 20, щоб отримати основне уявлення про синтаксис цієї команди. Ви можете побачити довідковий посібник цієї команди, виконавши команду “help”:

$ getopts --допомога

Довідковий посібник команди “getopts” міститиме короткий опис використання цієї команди разом із її синтаксисом, як показано на малюнку нижче:

Тепер, коли ми переглянули довідковий посібник команди “getopts”, ми можемо продовжувати роботу з нашими прикладними сценаріями таким чином:

Випадок №1: Передача прапорів до сценарію Bash для його виконання в Linux Mint 20:

У цьому прикладі ми створимо скрипт bash, який буде приймати прапор як вхід від користувача разом із командою виконання цього сценарію bash. Залежно від значення наданого прапора, відображатиметься відповідний результат. Детальний опис кроків, задіяних у цьому сценарії, є таким:

Крок No1: Написання сценарію 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.ш-р

Індивідуальний висновок нашого скрипта bash з позначкою -r показаний на зображенні нижче:

Тепер ми запустимо скрипт bash з прапором “-y”, щоб перевірити, чи він видає правильний результат, чи не таким чином:

$ bash getopts.ш-у

Індивідуальний висновок нашого скрипта bash із позначкою -y показаний на зображенні нижче:

Тепер ми запустимо скрипт bash з прапором “-g”, щоб перевірити, чи він видає правильний результат, чи не таким чином:

$ bash getopts.ш-г

Індивідуальний висновок нашого скрипта bash з позначкою -g показаний на зображенні нижче:

Нарешті, ми запустимо наш скрипт bash з будь-яким випадковим прапором, тобто.e. прапор, який не є дійсним, або прапор, який не згадується в нашому сценарії 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” та зразком аргументу “black”, щоб перевірити, чи він видає правильний результат, чи не таким чином:

$ bash getopts.ш-р чорний

Індивідуальний висновок нашого сценарію bash із позначкою -r та аргументом "чорний" показано на зображенні нижче:

Тепер ми протестуємо цей скрипт з недійсним прапором та дійсним аргументом таким чином:

$ bash getopts.ш -а чорний

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

Тепер ми будемо запускати цей скрипт bash, опускаючи прапор і просто передаючи дійсний аргумент наступним чином:

$ bash getopts.ш чорний

Цього разу вихідних даних терміналу не буде, або іншими словами, наш скрипт bash не буде виконуватися, оскільки ми пропустили обов’язковий прапор.

Нарешті, ми запустимо цей скрипт bash, опускаючи аргумент і просто передаючи дійсний прапор наступним чином:

$ bash getopts.ш-р

Цього разу знову було виконано типовий випадок нашого сценарію bash, який показав повідомлення про помилку, оскільки ми пропустили обов’язковий аргумент.

Висновок:

Ці два приклади - дуже гарне зображення використання команди “getopts” у скрипті bash у Linux Mint 20. Ви навіть можете створювати більш складні сценарії в bash і поєднувати їх з командою “getopts”, щоб взяти від користувача більше одного аргументу та прапорів як вхідні дані.

How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...