Em um script em shell, a variável especial @
armazenará todos os parâmetros passados na linha de comando quando o script for executado. Por exemplo:
:~$ ./script.sh banana laranja
Internamente, script.sh
receberá os seguintes valores em 3 variáveis identificadas por:
0 - O caminho e o nome do script (./script.sh)
1 - O primeiro parâmetro (banana)
2 - O segundo parâmetro (laranja)
Se houver mais parâmetros, eles também serão armazenados em variáveis identificadas pelos números subsequentes, por isso essas variáveis especiais são chamadas de parâmetros posicionais (sim, no shell nós chamamos variáveis de parâmetros).
Além desses parâmetros posicionais numerados, nós ainda temos dois parâmetros especiais que armazenam tudo que for passado após o nome do script na linha de comandos: @
e *
. No meu exemplo, ambos receberiam o valor banana laranja
.
Portanto, na última linha do seu script, o comando exec
receberá como argumentos todos os parâmetros posicionais armazenados em @
que eventualmente tiverem sido passados na execução do script.