[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.
- Como mudar os parâmetros posicionais de um script dentro de uma função,
rapha.couto <=