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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Recebimento e passagem de parâmetro posicional


From: Julio C. Neves
Subject: Re: [shell-script] Recebimento e passagem de parâmetro posicional
Date: Wed, 24 Oct 2007 14:54:49 -0300

Fala Rodrigo,
vc não entendeu... eu usei o set - por preguiça de fazer um script o set -
passa os parâmetros posicionais para o bash corrente. Veja:

julio@wagemobile:~$ set - x y z
julio@wagemobile:~$ echo $1
x
julio@wagemobile:~$ echo $#
3
julio@wagemobile:~$ echo $0
bash

Assim sendo, não use o set -. Faça da forma que vc vinha fazendo (passando
os parâmetros normalmente), mas no escopo do script troque o $* por "$@"
(entre aspas).

Abração,
Julio
Faltam somente 4 dias para começar o curso
de programação shell da 4Linux, em SP.
Atenção! Restam somente 2 vagas!
http://www.4linux.com.br/ - (11)2125-4747


Em 24/10/07, Rodrigo Monteiro <address@hidden> escreveu:
>
>   Grande Julio,
>
> Tudo bem, a sua demonstração foi perfeita.
> Mas como integrar isso no script?
>
> script.sh
> #!/bin/bash
> set - -a $*
> echo $1
> echo $2
> echo $3
>
> ./script.sh -a "teste1 teste2" -b teste3 -c "teste4 teste5"
> -a
> -a
> teste1
>
> Não saiu como eu esperava.
>
> Então Julio, como eu devo fazer o script para ficar do jeito que eu
> necessito?
>
> Abraços.
>
>
> On 10/24/07, Julio C. Neves <address@hidden <08years%40gmail.com>>
> wrote:
> >
> >
> > Veja só o exemplo abaixo:
> > julio@wagemobile:~$ set - -a "teste1 teste2" -b teste3 -c "teste4
> teste5"
> > # O set - foi feito só por preguiça de criar script, então usei-o para
> > passar parâmetros para o próprio bash
> > julio@wagemobile:~$ echo $1
> > -a
> > julio@wagemobile:~$ echo $2
> > teste1 teste2
> > julio@wagemobile:~$ for i in $@
> > > do
> > > echo $i
> > > done
> > -a
> > teste1
> > teste2
> > -b
> > teste3
> > -c
> > teste4
> > teste5
> > # Não é isso que vc queria....
> > julio@wagemobile:~$ for i in $*; do echo $i; done
> > -a
> > teste1
> > teste2
> > -b
> > teste3
> > -c
> > teste4
> > teste5
> > # Nem isso ...
> > julio@wagemobile:~$ for i in "$@"; do echo $i; done
> > -a
> > teste1 teste2
> > -b
> > teste3
> > -c
> > teste4 teste5
> > # Ahhhhh! Acho que é isso....
> >
> > Abração,
> > Julio
> > Faltam 4 dias para começar o curso de
> > programação em Shell na 4Linux, em SP.
> > http://www.4linux.com.br/ - (11) 2125-4747
> >
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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