[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] value too great for base
From: |
Felipe Kellermann |
Subject: |
Re: [shell-script] value too great for base |
Date: |
Tue, 25 May 2004 11:23:26 -0300 (BRT) |
On Tue, 25 May 2004 10:29am -0300, Reinaldo Carvalho wrote:
> Script feio?
>
> for j in xHi xMi xHf xMf ; do
> if [ "$(eval echo \$$j)" -lt '10' ] ; then
As shells relativamente modernas têm formas concisas e inteligentes de
fazer essa reflexão que tu faz com `eval' com `\$'. Por exemplo, para
fazer isso na bash2, tu poderia optar por trocar a expressão,
`"$(eval echo \$$j)"' por `${!j}'
Exemplo de reflexão:
$ xHi=09
$ j=xHi
$ echo ${!j}
09
> eval $(echo $j)=$(eval echo \$$j | cut -c2)
> fi
> done
Aqui, a mesma coisa. Tu não precisa do primeiro `echo', tu pode fazer uma
reflexão no segundo `eval + echo + \$' e tu pode optar por não usar aquela
chamada ao `cut' e fazer uma substituição no próprio shell.
> Comentários?
>
Estão aÃ
--
Felipe Kellermann