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