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

bash e variabili globali



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:

#!/bin/bash
test () {
    # mi piacerebbe andare a modificare la variabile globale var
    var="valore settato in test()"
}

var="la chiamata a test non modifica questo valore."
$(test)
echo "chiamata 1: $var"

var="questo valore invece viene sovrascritto da test"
test
echo "chiamata 2: $var"

Questo è l'output dello script:

chiamata 1: la chiamata a test non modifica questo valore.
chiamata 2: valore settato in test()

Come vedete nella chiamata 1 la funzione non modifica la variabile
globale e questo non me lo aspettavo; anzitutto perché? Esiste un modo
perché la riesca a modificare anche se chiamata con $(...) o `...`?

Grazie mille

Piviul


Reply to: