[Linux-Biella] variabili shell in !bash ma in sh

Daniele Segato daniele.bilug a gmail.com
Dom 1 Nov 2009 19:39:54 CET


Il giorno dom, 01/11/2009 alle 19.00 +0100,
leonardo.buffa a bilug.linux.it ha scritto:
> si ma non va, da sempre l'errore
> questo e' il codice:

suppongo che le variabili D1, D2, D3 siano già state definite
suppongo correttamente?

> while :; do
>   for i in 1 2 3
> 
> do                                                                        
>      eval echo\${D${i}}

non ci manca uno spazio tra echo e \$... ?

>     eval cat \${D${i}}
> #    STATUS=`eval "cat \${D${i}}"`
>     sleep 1
> 
> done


> la riga remarkata da errore :(


non comprendo cosa vuol fare lo script...
"stampare" il contenuto di una variabile? (echo) stampare il contenuto
del file indicato nella variabile? (cat)


comunque ho provato in locale...

e credo di aver capito...

\$ fa l'escape di $.. però in quel modo viene valutato 2 volte.. quindi
devi fare un doppio escape...

prova così

while :; do
  for i in 1 2 3

do                                                                        
     eval echo\${D${i}}
    eval cat \${D${i}}
    STATUS=`eval "cat \\${D${i}}"`
    sleep 1

done

nota la doppia \\



Maggiori informazioni sulla lista Linux