2010/9/18 Paolo Sala <piv...@riminilug.it>: > Ciao a tutti esiste un modo in bash per settare le variabili globali da > una funzione anche se viene chiamata con $(nome_func) o in modo > equivalente da `nome_func`? Per capirci ecco un esempio che spero sia > chiarificatore: >
Non credo di poter chiarire i tuoi dubbi e dubito di aver capito cosa vuoi fare, ma provo a rispondere: se richiami la funzione con 'test' (o anche '$test' o '$(test)', allora la *var* restituirà il valore assegnatole nella funzione; se, invece, ri-assegni un valore a *var*, la funzione ti restituisce il nuovo valore se e solo se la richiami con '$test' oppure con '$(test)" [cfr. es. in calce]. Spero ti possa essere di aiuto. Ciao, ennio --------------------------quote------------------------- #!/bin/bash test () { # mi piacerebbe andare a modificare la variabile globale var var="valore settato in test()" } var="valore assegnato a var fuori funzione" echo -e "ok, restituisce il valore ass. a var qui sopra:\n\t" $var test # qui lancio la funzione che fa il suo dovere! echo -e "Lanciato test che ha assegnato a var il valore indicato nella funzione:\n\t" $var echo -e "ora var ha il valore assegnatole da 'test'" echo "ora lancio test, doll test e doll(test), in ordine:" test echo "chiamata 1a (dopo test):" $var $test echo "chiamata 1b (dopo doll test):" $var $(test) echo "chiamata 1c (dopo doll(test)):" $var # ora assegno un nuovo valore a var var="nuovo valore di var" echo "ho assegnato un nuovo valore a var: \n\t" $var echo "lancio test" test echo "chiamata 2a (dopo test):" $var echo "come vedi, test ha ripreso il suo valore indicato in funzione" echo "se però ri-assegno un nuovo valore a var:" echo "e lancio doll test (anzichè solo test)" echo "avviene la sostituzione:" var="questo valore invece NON viene sovrascritto da test" $test echo "chiamata 2b (dopo doll test):" $var $(test) echo "chiamata 2c (dopo doll(test)):" $var --------------------------------unquote-------------------------------- -- [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) ] -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/aanlktimpahjzidsxufcwi-gskxnxath=ghmh5dqdo...@mail.gmail.com