Acessando mais que 9 parâmetros em shell script

Publicado por Leandro Santiago em 14/02/2007

[ Hits: 12.888 ]

Blog: http://leandrosan.wordpress.com

 


Acessando mais que 9 parâmetros em shell script



$ mostra_parametros um dois três quatro cinco seis sete oito nove dez onze
um dois três quatro cinco seis sete oito nove um0 um1

Quem nunca passou por esse aperto, quando trabalha com shell script?

Há uma "pseudo-limitação", quando tratamos parâmetros em shell script, que é: "podemos somente usar somente 9 parâmetros nos nossos programinhas".

Isso está certo? Não exatamente. O erro está no modo com que tratamos as variáveis: $1, $2, $3 , ...

Há várias maneiras de contornarmos este problema. Uma delas é o uso do comando shift, que não abordarei aqui. Outra, mais eficiente, é o uso das variáveis da seguinte forma: ${1}, ${2}, .... , ${9} , ${10} , ${11}, ...

Sem mais explicações.

Notas:
  • Esse truque é garantido no bash, ksh.
  • Outros interpretadores de comando não tem essa limitação, como o tcsh, zsh, ash. Portanto, use as variáveis da maneira tradicional.
  • Funciona também com ${#}, ${*}, ${0} e ${@}, no bash.
  • Você pode usar estes truques também com argumentos de funções.

Referência:
Leitura recomendada para os estudantes de shell:
Links:
Pois é... "inté" a próxima pessoal :)

Outras dicas deste autor

Criando programas com opções

Editando documentos em formato PDF com o Koffice

Exibindo vídeos na sua área de trabalho com o Xine

Framebuffer - recursos gráficos sem o X

Instalando programas no Linux sem ter poderes de root

Leitura recomendada

Criando item no menu do GNU/Linux com terminal executando comandos/scripts/aplicações

Usando o cURL para enviar JSON POST DATA

Desligar o PC após concluir download (Chrome e Chromium)

Contagem regressiva no terminal

Pacman colorido no Arch Linux

  

Comentários

Nenhum coment�rio foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts