Разбор аргументов командной строки — важнейший навык для любого разработчика сценариев оболочки. Это позволяет сценариям принимать входные параметры и параметры от пользователей при их выполнении. Одним из мощных инструментов для анализа аргументов командной строки в сценариях оболочки является getopts. В этой статье мы рассмотрим различные методы и предоставим примеры кода, которые помогут вам овладеть искусством анализа аргументов командной строки с помощью getopts.
Метод 1: базовое использование getopts
Самый простой способ использования getopts— определение параметров и соответствующих им действий внутри цикла. Вот простой пример:
#!/bin/bash
while getopts ":a:b:c" opt; do
case $opt in
a)
echo "Option -a triggered with argument $OPTARG"
;;
b)
echo "Option -b triggered with argument $OPTARG"
;;
c)
echo "Option -c triggered"
;;
\?)
echo "Invalid option: -$OPTARG"
;;
esac
done
Метод 2: обработка обязательных аргументов
Иногда вам необходимо обеспечить наличие определенных аргументов. Вот пример обработки обязательных аргументов с помощью getopts:
#!/bin/bash
while getopts ":a:b:c:" opt; do
case $opt in
a)
echo "Option -a triggered with argument $OPTARG"
;;
b)
echo "Option -b triggered with argument $OPTARG"
;;
c)
echo "Option -c triggered"
;;
\?)
echo "Invalid option: -$OPTARG"
;;
:)
echo "Option -$OPTARG requires an argument"
;;
esac
done
Метод 3: обработка дополнительных аргументов
В некоторых случаях может потребоваться обработка дополнительных аргументов, которые не являются опциями. Вот пример того, как это сделать с помощью getopts:
#!/bin/bash
while getopts ":a:b:c" opt; do
case $opt in
a)
echo "Option -a triggered with argument $OPTARG"
;;
b)
echo "Option -b triggered with argument $OPTARG"
;;
c)
echo "Option -c triggered"
;;
\?)
echo "Invalid option: -$OPTARG"
;;
esac
done
shift $((OPTIND-1))
echo "Additional arguments: $@"
getopts— мощный инструмент для анализа аргументов командной строки в сценариях оболочки. В этой статье мы рассмотрели различные методы, включая базовое использование, обработку обязательных аргументов и обработку дополнительных аргументов. Вооружившись этими знаниями, вы теперь можете писать сценарии оболочки, которые корректно обрабатывают вводимые пользователем данные и параметры. Начните использовать getoptsв своих скриптах и поднимите свои навыки анализа аргументов командной строки на новый уровень!
Не забудьте поделиться своими комментариями и опытом ниже. Удачных сценариев!