Acessando Argumentos do Script Shell por Índice

Tenho certeza de que isso é um acéfalo quando você está em programação shell. Infelizmente não estou e estou com muita dificuldade ...

Eu preciso verificar os argumentos passados ​​para um script de shell. Eu também quero armazenar todos os parâmetros passados ​​em um array, pois eu preciso de separação posterior mais tarde.

Eu tenho um argumento "-o" que deve ser seguido por 0 ou 1. Assim, quero verificar se o seguinte argumento é válido. Aqui está o que eu tentei:

# Loop over all arguments
for i in "$@"
do
    # Check if there is a "-" as first character,
    # if so: it's a parameter
    str="$i"
    minus=${str:0:1}

    # Special case: -o is followed by 0 or 1
    # this parameter needs to be added, too
    if [ "$str" == "-o" ]
    then
        newIdx=`echo $((i+1))`   # <-- problem here: how can I access the script param by a generated index?
        par="$($newIdx)"

        if [[ "$par" != "0" || "$par" != "1" ]]
        then
            echo "script error: The -o parameter needs to be followed by 0 or 1"
            exit -1
        fi
        paramIndex=$((paramIndex+1))

    elif [ "$minus" == "-" ]
    then
        myArray[$paramIndex]="$i"
        paramIndex=$((paramIndex+1))
    fi
done

Eu tentei várias coisas, mas não funcionou ... Ficaria muito grato se alguém pudesse esclarecer isso!

obrigado

questionAnswers(2)

yourAnswerToTheQuestion