2011-01-24 7 views

risposta

34

source script.sh esegue lo script all'interno del processo corrente, in tal modo tutte le assegnazioni delle variabili sono conservati come variabili anche dopo lo script termina (e non c'è bisogno di essere esplicitamente export 'd).

./script.sh solo esegue lo script in un sottoprocesso, e tutte le variabili che vengono assegnati scompaiono dopo che lo script è fatto.

+3

Nota che './Script.sh' può esportare le variabili solo per i bambini, non per tornare al genitore. –

+2

Non tutte le variabili sono variabili di ambiente; diventano solo variabili d'ambiente quando vengono esportate. Sia le normali variabili di shell che le variabili di ambiente possono essere aggiornate da 'source script.sh' (o'. Script.sh'). –

6

lo script di origine cambierà l'ambiente corrente, ./script no.

(EDIT: lo script deve essere eseguibile da usare ./)

Problemi correlati