Учитывая фрагмент кода "case":
case $3 in
-a)
if [ "$4" == #some regex to match pattern ]; then
#do some additional work
else
#proceed as usual
fi
;;
Как мне лучше express Мое намерение искать позиционный параметр, который расположен в правой части текущей позиции справа? $ 3 (или $ 3 ++, если это имеет смысл) вместо жесткого кодирования его до $ 4 в операторе if?
EDIT:
простейшее использование моего сценария будет выглядеть как это:
./script.sh company region -a LIST-123
первые два обязательных позиционных аргумента (компания и регион) исправлены. Начиная с позиции $ 3, пользователи должны предоставить хотя бы один обязательный аргумент в формате предыдущего da sh и одну букву (-a, -b, - c et c). Однобуквенные обязательные аргументы могут иметь необязательный аргумент (LIST-123 в приведенном выше примере). Если необязательный аргумент не указан, сценарий должен возобновиться как обычно.
Я хочу, чтобы пользователи могли предоставлять несколько пар обязательных и необязательных аргументов. как это:
./script.sh company region -a LIST-123 -b LIST-456 -c LIST-789
Кроме того, чтобы иметь возможность гибко предоставлять обязательные однобуквенные аргументы в любом порядке:
./script.sh company region -c LIST-789 -b LIST-456 -a LIST-123
И иметь возможность предоставлять необязательные аргументы только для определенных обязательных однобуквенные аргументы, но не все:
. / script. sh регион компании - c LIST-789 -b -a LIST-123