shell-script-pt
[Top][All Lists]
Advanced

[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------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]