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

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

Re: [shell-script] Como mudar os parâmetros posicionais de um script den


From: Tiago Peczenyj
Subject: Re: [shell-script] Como mudar os parâmetros posicionais de um script dentro de uma função
Date: Tue, 19 Oct 2010 18:58:34 -0200

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 <address@hidden>

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