Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

$@ também funciona!

[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 ~]#
2 respostas

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
solução!

Muito obrigado pelo esclarecimento Luis Dias.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software