Acessando mais que 9 parâmetros em shell script
Dica publicada em Shell Script / Introdução
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:
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.
- http://aurelio.net/ Aurelio Marinho Jargas (O "cara" do shell script);
- Apostila sobre o ksh:
http://www.osc.edu/hpc/training/script/korn_script_0105.pdf - Artigo sobre parâmetros em shell, por Tiago Peczenyj:
http://centosbr.org/modules/smartsection/item.php?itemid=108&com_id=77...
- Página do Thobias: http://thobias.org/
- Bar do Júlio Neves: http://twiki.softwarelivre.org/bin/view/TWikiBar/
- Aurelio.net: http://aurelio.net/
- Bash: http://www.gnu.org/software/bash/
- Tcsh: http://www.tcsh.org/
- Zsh: http://www.zsh.org/
- Ksh: http://www.kornshell.com/
- Ash: ?