Ennio Sr scrisse in data 19/09/2010 16:21: > 2010/9/19 Paolo Sala <piv...@riminilug.it>: > >> È nello scoprire questo >> > cosa eattamente? (che con 'test' la funzione restituisce il valore che > le è sato assegnato quando l'hai definita, mentre con '$test' > restituisce un novo valore di 'var', se nel frattempo hai ri-definito > 'var' stessa?) > Perché parli di ridefinire? Semplicemente nello scoprire che se chiami una funzione con $ allora viene evocata una subshell che fa una _copia_ delle variabili d'ambiente e quindi che eventuali modifiche rimangono soltanto all'interno di quella subshell. Per voi sarà banale e scontato ma io proprio non lo sapevo e ne sono sorpreso.
> Spero che altri ti possano chiarire meglio questi concetti (ma dove li > hai letti, in 'man bash'?) > (Per me le variabili di ambiente sono quelle definite in .bashrc o > .bash_profile....) > Bhé AFAIK per una funzione che siano definiti in .bashrc o all'interno della funzione stessa poco importa: con printenv vengono mostrate tutte le variabili e il loro contenuto attive in quel momento, indipendentemente che siano definite in .bashrc o nella funzione stessa e che formano l'ambiente in cui il tuo script gira. Poi se vuoi chiamarle in un altro modo ci possiamo mettere d'accordo... > [...] > Ma sto divagando e forse nn ci combina niente con cio' che hai in mente ;) > A me piacerebbe fare in modo che le modifiche fatte ad una variabile globale possano modificare la variabile globale indipendente dal modo in cui questa funzione venga chiamata ma ho scoperto e mi sembra confermiate che questo non è possibile. E questo a me serviva per supplire la carenza di bash di non poter passare le variabili by reference. Ringrazio tutti per le risposte che mi hanno aiutato a chiarire meglio questo aspetto di bash (la creazione di una subshell ad ogni chimata di una funzione con $) che non conoscevo. Ciao Piviul -- 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/4c970a16.8020...@riminilug.it