La variable $ * contiene todos los parámetros como un solo valor.
La variable $ @ contiene todos los parámetros como valores separados, por lo que puede iterar sobre ellos.
#!/bin/bash
total=1
for var in "$*"; do
echo "\$* =======> #$total = $var"
total=$(($total + 1))
done
total=1
for var in "$@"; do
echo "\$@ =======> #$total = $var"
total=$(($total + 1))
done
echo "El numero de parametros es : $#"
echo "El ultimo parametro ingresado es : ${!#}"
Al Ejecutar este Script, obtendriamos el siguiente resultado :
bash iterar.sh uno dos tres cuatro cinco seis siete ocho
$* =======> #1 = uno dos tres cuatro cinco seis siete ocho $@ =======> #1 = uno $@ =======> #2 = dos $@ =======> #3 = tres $@ =======> #4 = cuatro $@ =======> #5 = cinco $@ =======> #6 = seis $@ =======> #7 = siete $@ =======> #8 = ocho El numero de parametros es : 8 El ultimo parametro ingresado es : ocho