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.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/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 2 3 4 5 6 7 8 9 10 11 | $* =======> #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 | 
