Como verificar o número de variáveis passadas em um shellscript?

O que mais me traz satisfação como desenvolvedor é gerar automatização de tarefas. Desenvolver ferramentas e rotinas que possibilitem que minha equipe ou meus clientes trabalhem menos para alcançar determinado objetivo.

Desde gerar backups até configurar um ambiente de desenvolvimento ou produção. Hoje fui implementar umas alterações no shellscript para criar um site no apache e criar as pastas no meu ambiente local, mas para isso precisava verificar o número de variáveis passadas pelo usuário antes de continuar a execução do script. 

Como verificar o número de variáveis passadas no shellscript?

Para ter o número de variáveis que um shelscript recebeu é bem simples:

$#

Sabendo disso basta você fazer uma comparação para validar se o número de variáveis é o que você esperava. No exemplo abaixo o script finaliza a execução se o usuário não passar pelo menos 2 variáveis:

if [ $# -lt 2 ]; then
echo 'Necessário 2 variáveis'
exit 0
fi

Uma dica do Bruno para tornar o código mais legível é fazer a comparação da seguinte forma, e também usar exit 1 para quando der erro, fica assim:

if [[ $# < 2 ]] then
echo 'Necessário 2 variáveis'
exit 1
fi
Usar o exit 1 quando algo der errado no seu script impede que outros scripts sejam executados na sequência se o seu deu errado, por exemplo:

seu_script.sh && seu_segundo_script.sh

Se algum erro acontecer no seu_script o seu_segundo_script não será executado.

Agora consigo validar a execução de qualquer shellscript e evitar erros. Se voc6e tem uma maneira diferente de fazer esta verificação deixe nos comentários!

Ir para o topo