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

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

Re: [shell-script] Problema string variavel


From: Carlos Eduardo G. Carvalho (Cartola)
Subject: Re: [shell-script] Problema string variavel
Date: Mon, 18 Aug 2014 17:26:11 -0300

Não recai no mesmo problema anterior? Alias, pedi que você respondesse o que funcionou naquele caso para ficar no histórico da lista, pois foram várias respostas :) Se puder confirme o que fez!

Era legal tentar entender a coisa, já que tem, aparentemente, o mesmo problema de antes e não soube resolvê-lo :)

O que acontece é que o shell vai fazer a substituição das variáveis num primeiro momento, então você tem que deixar que ele substitua o $retencao mas escapar o dólar ($) de onde não quer que ele substitua. O eval é um artifício pra fazer uma segunda etapa de substituição de variáveis, então tem que escapar o dólar do que quer que apenas o eval avalie e deixar não escapado o que quer que seja substituído primeiro.

Vale qualquer coisa pra escapar, como aspas simples (também chamados de 'plics') ou contra-barra.

eval echo -e '$qtde_min_'$retencao

ou, escapando com contra-barra:

eval echo -e \$qtde_min_$retencao

Se tudo der certo, o shell vai substituir a váriavel que ele vê, a $retencao, por "diario" e passar o $ de $qtde (que está escapado e por isso ele não "vê") para o eval, que receberá então $qtde_min_retencao como uma variável a ser substituída pelo seu valor. O shell vai tirar a contra-barra, passando $qtde_min_diario e, por isso, o eval vai substituí-la.

Abs,



Carlos E G Carvalho (Cartola)
http://cartola.org/360
http://www.panoforum.com.br/


Em 18 de agosto de 2014 17:00, address@hidden [shell-script] <address@hidden> escreveu:
 

Pessoal 
Estou com outro problema .
tenho uma variavel chamada qtde_min_diario=1 agora estou tentando fazer o seguinte
qtde_min_diario=1
retencao=diario
gostaria de concatenar o qtde_min com a retencao no caso diario
eval echo -e  "$qtde_min_"$retencao
e gostaria de obter o valor 1



reply via email to

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