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

Re: Nuova curiosita` su verifica input in script [con extglob]



* Antonio Macchi <antonio_macchi@alice.it> [140209, 06:44]:
>> [...] 
Penso di aver capito come utilizzare 'eval' e sono quasi arrivato a
raggiungere l'obiettivo che mi ero proposto. C'e` pero` ancora un
piccolo punto che non so se si puo` e come risolvere, ovvero il controllo del
numero delle variabili.
Per spiegarmi meglio e` necessario che posti una parte del codice:
----------
....
while [  "$n" -le "$_mnum" ]; do
   echo Input $n^ campo da modificare totalmente:; read _mcmp
   echo Input nuovo valore di "$_mcmp"; read _mnv
_mnv2=`echo "$_mnv" | sed s/\'/\\\\\\\\\'/g`  # si salvano gli eventuali apici

eval c$n=$_mcmp
eval v$n=$_mnv2
(( n += 1 ))
echo $c1 $v1 $c2 $v2 
done
psql mydb -c "update $_tab set $c1='$v1', $c2='$v2' where $_nrf='$_nrv';"
psql mydb -c "select * from pro_mod where n_prog=588;"
....
----------
Questo funziona perfettamente se si sa in anticipo quanti campi verranno
modificati; in realta`, tuttavia, vorrei che tale numero fosse
variabile, ma non riesco poi a controllarne il valore. In altre
parole, _$c1_ ritorna il valore corretto, _$c$n_ (ove n e` una variabile
inserita in un ciclo _for_) mi ritorna solo il valore di $n!

Sbaglio ancora qualcosa oppure e` impossibile fare cio` che vorrei?
(E se fosse possibile inserire un nuovo ciclo di eval sulle
precedenti...? Ora verifico...)

Grazie della tua pazienza ;-)

-- 
[Perche' usare Win$ozz (dico io) se ..."anche uno sciocco sa farlo.   \\?//
 Fa' qualche cosa di cui non sei capace!"  (diceva Henry Miller) ]    (°|°)
[Why use Win$ozz (I say) if ... "even a fool can do that.              )=(
 Do something you aren't good at!" (as Henry Miller used to say) ]


Reply to: