En muchas preguntas SO y tutoriales de bash, veo que puedo acceder a los argumentos de la línea de comandos en scripts de bash de dos maneras:
$ ~ >cat testargs.sh
#!/bin/bash
echo "you passed me" $*
echo "you passed me" $@
Lo que resulta en:
$ ~> bash testargs.sh arg1 arg2
you passed me arg1 arg2
you passed me arg1 arg2
¿Cuál es la diferencia entre $*
y $@
?
¿Cuándo se debe usar el primero y cuándo se debe usar el segundo?
echo "something $@"
como un error