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

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

Como mudar os parâmetros posicionais de um script dentro de uma função


From: rapha.couto
Subject: Como mudar os parâmetros posicionais de um script dentro de uma função
Date: Tue, 19 Oct 2010 16:46:12 -0000
User-agent: eGroups-EW/0.82

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.



reply via email to

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