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

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

Re: Como mudar os parâmetros posicionais de um script dentro de uma funç


From: rapha.couto
Subject: Re: Como mudar os parâmetros posicionais de um script dentro de uma função
Date: Fri, 22 Oct 2010 14:45:10 -0000
User-agent: eGroups-EW/0.82

Obrigado, era isso mesmo.

--- Em address@hidden, Tiago Peczenyj <tiago.peczenyj@...> escreveu
>
> vc esta executando em um subshell - quando usa $( e ) - , assim o array com
> os argumentos foi copiado para um processo filho e aconteceu o que vc
> queria, porem este array foi perdido ao final da execucao.
> 
> 2010/10/19 rapha.couto <rylphs@...>
> 
> >
> >
> > Olá,
> >
> > Eu preciso, dentro de uma função, mudar os parâmetros posicionais do
> > script, mas qualquer chamada a "shift" dentro de uma função muda somente os
> > parâmetros da função. Existe algum jeito de fazer isso?
> >
> > Eu tentei fazer usando alias. Deu certo, o problema é que eu preciso pegar
> > o resultado do alias. Se eu chamo o alias diretamente, o shift muda
> > corretamente os parâmetros, mas se eu uso substituição de comando, o shift
> > só funciona na primeira vez que o alias é executado. Por exemplo:
> >
> > #!/bin/bash
> > shopt -s expand_aliases
> >
> > alias teste='shift 1; echo $@;';
> >
> > teste
> > teste
> > echo $(teste)
> > echo $(teste)
> > echo $(teste)
> >
> > Se eu chamo o script passando por parâmetros "1 2 3 4 5 6", eu tenho a
> > seguinte saída:
> > 2 3 4 5 6
> > 3 4 5 6
> > 4 5 6
> > 4 5 6 #a partir da primeira chamada a $(teste) os parâmetros não mudam mais
> > 4 5 6
> >
> > Alguém sabe o porquê desse comportamento?
> > Obrigado.
> >
> >  
> >
> 
> 
> 
> -- 
> Tiago B. Peczenyj
> Linux User #405772
> 
> http://pacman.blog.br
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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