Si una función o una aplicación tiene más de cero argumentos, siempre tiene un último argumento.
Si desea leer el indicador de opción y los pares de valores, como en:
$ ./t.sh -o output -i input -l last
Y desea aceptar un número variable de pares de opción / valor,
Y no quiero un gran árbol "si ... entonces ... más ... fi",
Luego, después de verificar un recuento de argumentos que no sea cero e incluso,
Escriba un ciclo while con estas cuatro declaraciones eval como el cuerpo, seguido de una declaración de caso utilizando los dos valores determinados en cada pasada a través del ciclo.
La parte difícil de la secuencia de comandos se demuestra aquí:
#!/bin/sh
# For each pair - this chunk is hard coded for the last pair.
eval TMP="'$'$#"
eval "PICK=$TMP"
eval TMP="'$'$(($#-1))"
eval "OPT=$TMP"
# process as required - usually a case statement on $OPT
echo "$OPT \n $PICK"
# Then decrement the indices (as in third eval statement)
:<< EoF_test
$ ./t.sh -o output -i input -l last
-l
last
$ ./t.sh -o output -l last
-l
last
$ ./t.sh -l last
-l
last
EoF_test