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