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