[root@localhost ~]# cat teste.sh
#!/bin/bash
echo $@
exit 0
[root@localhost ~]#
[root@localhost ~]# ./teste.sh 1 2 3
1 2 3
[root@splv-zabbix ~]#
[root@localhost ~]# cat teste.sh
#!/bin/bash
echo $@
exit 0
[root@localhost ~]#
[root@localhost ~]# ./teste.sh 1 2 3
1 2 3
[root@splv-zabbix ~]#
Sim, Edilson, o resultado é o mesmo
Entenda a diferença
O $*
é uma string com todos os elementos
O $@
é uma lista com todos os elementos
Exemplo:
#!/bin/bash
# Utilizando "$*"
for arg in "$*"; do
echo "$arg"
done
# Utilizando "$@"
for arg in "$@"; do
echo "$arg"
done
Se você executar esse script com os argumentos "foo", "bar" e "baz", a saída será:
foo bar baz # Utilizando "$*"
foo # Utilizando "$@"
bar
baz
Muito obrigado pelo esclarecimento Luis Dias.