[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Dúvida sobre funções
From: |
Juari Ritter Müller |
Subject: |
Re: [shell-script] Dúvida sobre funções |
Date: |
Sat, 20 Jul 2002 18:52:18 -0300 |
User-agent: |
Mutt/1.3.28i |
Por que as variaveis $1, $2, $3 e assim por diante sao consideradas
variaveis *especiais* pelo bash e representam os argumentos que sao
passados a uma funcao/script/programa. Como funcao_start é uma funcao
implementada dentro do seu script, ela possue os seus proprios argumentos
($1, $2,...$n), que sao diferentes dos argumentos que foram passados
ao script.
Para contornar esta situacao, passa-se todos os argumentos de linha de
comando para a funcao colocando a variavel $@ como argumento desta funcao.
A variavel $@ também é uma variável especial que armazena todos os
argumentos do ambiente atual.
Outras variaveis especiais da bash:
$# - qtde. de argumentos
$* - praticamente o mesmo que $@
$0 - nome do script em execucao
$_ - o argumento que foi usado anteriormente (este eu uso manualmente)
$$ - PID do processo atual
... entre outros tantos que sao menos usados.
Existe uma lista de muitos outros acessados atravels do comando
man bash, procure por "Special Parameters".
Até mais,
Juari
On Tue, Jul 16, 2002 at 08:25:21PM -0300, Marcelo Anton wrote:
> Realmente passando $@ funcionou, muito obrigado pela dica.
> Pelo que entendi com esse comando ele repassa todas as variaveis pra dentro
> da
> função.
> Mas por que será que só as variaveis passadas via linha de comando que ele
> não
> repassa automaticamente para a função?
>
> Em Qua 17 Jul 2002 18:56, Juari Ritter Müller escreveu:
> > Amigo, tente isso: funcao_start $@
> >
> > []'s
> > Juari
> >
> > On Mon, Jul 15, 2002 at 09:33:27PM -0300, Marcelo Anton wrote:
> > > Tenho um script shell assim: ( fiz uma versão resumida dele pra pedir
> > > minha dúvida ).
> > > Ele é iniciado com três parmetro.
[...]
> > >
> > > Resumindo tudo, as variaveis passadas via linha de comando não entram na
> > > função mas as variaveis criadas dentro dis script entram na função. Por
> > > quê isso acontece?
>
--
-Juari Ritter Müller
address@hidden and address@hidden
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GE d-- s: a18 C+++ UL++ P+ L++> E- W+ N+ o? K? w--
O? M? V- PS+ PE Y+ PGP t+ 5+ X+ R tv- b+ DI D++
G e h! !r y?
------END GEEK CODE BLOCK------