1
resposta

Outra forma de acessar todos os argumentos

Além do "$*", o bash tem a variável interna $@ que também acessa todos os argumentos. Porém, a diferença entre $* e $@ esta na forma de armazenamento dos argumentos, pois enquanto a variável $* acessa todos os argumentos (separados pela caracter separador contido na variável interna $IFS, que normalmente é um espaço) como se fossem uma única string ou palavra (word), a variável $@ acessa os argumentos como se fossem diversas strings separadas (words).

Vejam o script de teste abaixo:

#!/bin/bash
echo "Com *:"
for arg in "$*"; do echo "<$arg>"; done
echo
echo "Com @:"
for arg in "$@"; do echo "<$arg>"; done

Agora vejam a diferença entre $* e $@.

$ /tmp/test.sh 1  2 "3  4"
Com *:
<1 2 3  4>

Com @:
<1>
<2>
<3  4>
1 resposta

Boa, Thiago. É isso mesmo!

Se tiver alguma dúvida, é só dizer!

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