Zugriff auf Shell-Skriptargumente über den Index

Ich bin sicher, dies ist ein Kinderspiel, wenn Sie in der Shell-Programmierung sind. Leider nicht und es fällt mir ziemlich schwer ...

Ich muss Argumente überprüfen, die an ein Shell-Skript übergeben wurden. Ich möchte auch alle übergebenen Parameter in einem Array speichern, da ich später eine weitere Trennung benötige.

Ich habe ein Argument "-o", dem entweder 0 oder 1 folgen muss. Daher möchte ich überprüfen, ob das folgende Argument gültig ist. Folgendes habe ich versucht:

# 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

Ich habe verschiedene Dinge ausprobiert, aber es hat nicht funktioniert ... Wäre dankbar, wenn jemand Licht ins Dunkel bringen könnte!

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage