W wielu pytaniach SO i samouczkach bash widzę, że mogę uzyskać dostęp do argumentów wiersza poleceń w skryptach bash na dwa sposoby:
$ ~ >cat testargs.sh
#!/bin/bash
echo "you passed me" $*
echo "you passed me" $@
Co skutkuje w:
$ ~> bash testargs.sh arg1 arg2
you passed me arg1 arg2
you passed me arg1 arg2
Jaka jest różnica między $*
i $@
?
Kiedy należy użyć tego pierwszego, a kiedy drugiego?
echo "something $@"
jako błąd