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 |