Pular para o conteúdo

Parâmetro por referência [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Parâmetro por referência [RESOLVIDO]

Enviado em 05/03/2015 - 09:49h

Pessoal, como faço para passar um parâmetro por referência em shell script?

Responder tópico

2. Re: Parâmetro por referência

Enviado em 05/03/2015 - 10:17h

Usa-se os parâmetros enumerados: $1, $2, $3, $4 ... ${10}, ${11} ...
Exemplo:

#!/bin/bash

(($# < 1)) && {
# $0 = nome do script em execução
echo "Uso: $0 [option] ..."
exit;
}

for arg; do
echo "Parâmetro passado: $arg"
done
-----------------------------------------------------------------------------
Uma vida não questionada não merece ser vivida - Platão

3. Re: Parâmetro por referência

Enviado em 05/03/2015 - 13:55h

Sem consultar a manpage, uma solução grotesca que me ocorre é passar o nome da variável a alterar.

#!/bin/bash
func () {
varname=$1
eval "(( $varname++ ))"
}

a=5
echo $a
func a
echo $a
Produz como saída o seguinte;

5
6

4. Re: Parâmetro por referência [RESOLVIDO]

Enviado em 17/03/2015 - 11:40h

Encontrei um boa solução:


$ swap()
{
temp=${!1};
eval "$1=${!2}";
eval "$2=$temp";
}

$ a=1;b=2;swap a b;

$ echo "a=$a, b=$b"
a=2, b=1

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder