Описание тега getopts

NoneGetopts - это встроенная оболочка Bourne/POSIX для разбора параметров командной строки, доступная в ash, bash, dash, ksh, zsh, ... в Linux и других системах Unix.

getopts - это встроенная оболочка для анализа параметров командной строки формы -a где aбуква или другой символ. Он доступен во всех оболочках Bourne-style (Bourne, ash, bash, dash, ksh, zsh, ...) и определен стандартом POSIX.

С помощью getopts обычно включает вызов цикла getopts OPTSTRING varname, в котором каждый вызов getopts будет анализировать следующую опцию, установите varname с именем опции и вернуть успех.

пример

#!/bin/sh

while getopts a:b flag
do
    case $flag in
        a) echo "a flag used, with value $OPTARG" ;;
        b) echo "b flag used" ;;
        ?) echo "Usage: PROGRAM [-a ARG1] [-b]"; exit 1 ;;
    esac
done
shift $((OPTIND - 1)) # remove parsed args from the arglist
echo remaining args: $*

Документация