Para shells, os argumentos são conhecidos como parâmetros posicionais, ou seja, você pode inseri-los um após o outro após o nome do arquivo e alcançar cada um deles pela posição em que estão inseridos.
O parâmetro posicional 0 é sempre o nome do script (arquivo) e os argumentos dados a partir de 1. Então você pode obter o primeiro argumento por $1
, segundo por $2
e assim por diante.
Por exemplo:
% foo () { printf '%s\n' "First: "$1" and Second: "$2"" ;}
% foo spam egg
First: spam and Second: egg
Para usá-lo em uma instrução if
, considerando apenas o primeiro argumento $1
(o mesmo vale para outros argumentos também):
if [ "$1" = "foo" ]; then
## Dome something
else
## Do something else
fi
Digamos que você o tenha em um script chamado foobar.sh
. Agora você pode executar o script como:
./foobar.sh foo
./foobar.sh bar
./foobar.sh blahblah
e os valores de $1
serão foo
, bar
, blahblah
respectivamente em três casos.