[Linux-Biella] variabili shell in !bash ma in sh
leonardo.buffa a bilug.linux.it
leonardo.buffa a bilug.linux.it
Dom 1 Nov 2009 13:13:11 CET
> Il giorno sab, 31/10/2009 alle 11.43 +0100, leonardo buffa ha scritto:
>> ciao
>> avrei bisogno di gestire le classiche variabili indicizzate tipo a[1]
>> a[2] eccetera
>> in bash posso farlo senza problemi con un normalissimo:
>> a[0]="pippo"
>> a[1]="pluto"
>>
>> e richiamandole con $a{[0]} e $a{[1]} eccetera
>>
>> in sh mi da errore e non riesco a trovare nulla, sh le gestisce o devo
>> per forza usare bash?
>
> non è supportato da sh, puoi simularlo con eval:
>
> a1=one
> a2=two
> a3=three
> for ((i=1; i<=3; i++)); do
> eval echo "value of a${i} = \${a${i}}"
> # or eval echo "value of a$i = \$a$i"
> done
uhm
ho pero' un problema:
io associo a D1 un device che trovo sotto sysfs
lo status viene visualizzato correttamente se faccio ad esempio:
eval cat \${D${i}}
(dove i e' ad esempio 1)
visto che devo utilizzare questo metodo per verificare lo stato di una
serie di devices (qui la mia idea di ottimizzare il tutto con un bel ciclo
for) se gli dico:
STATUS=`eval cat \${D${i}}`
ottengo un bel:
/opt/bin/hbleds.sh: line 1: syntax error: Bad substitution
stessa cosa se faccio direttamente un if senza usare la variabile STATUS!
sai aiutarmi?
ciao, leo
Maggiori informazioni sulla lista
Linux