Parâmetro por referência [RESOLVIDO]

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

Arthur Rodrigues Stilben
gugarthur

(usa Fedora)

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

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



  


2. Re: Parâmetro por referência

Perfil removido
removido

(usa Nenhuma)

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

Paulo
paulo1205

(usa Ubuntu)

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]

Arthur Rodrigues Stilben
gugarthur

(usa Fedora)

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts