Entra

View Full Version : script bash e definizione di variabili d'ambiente


akyra
16-03-2007, 08:05
ho già fatto un post nella sezione Linux ma nessuno sembra saperne nulla:
http://www.hwupgrade.it/forum/showthread.php?t=1429597

in poche parole, ho il problema che dovrei esportare delle variabili d'ambiente in alcuni script di avvio di linux, ma dopo aver dato il relativo comando export (esempio: export VAR=/percoso) la variabile definita nello script sembra essere disponibile solo all'interno dello script stesso, cioèà non viene esportata...infatti se tento di usarla come variabile d'ambiente, dopo aver eseguito il relativo script, non funziona...

per caso voi sapete il motivo di tutto ciò?

andbin
16-03-2007, 08:40
ho già fatto un post nella sezione Linux ma nessuno sembra saperne nulla:
http://www.hwupgrade.it/forum/showthread.php?t=1429597

in poche parole, ho il problema che dovrei esportare delle variabili d'ambiente in alcuni script di avvio di linux, ma dopo aver dato il relativo comando export (esempio: export VAR=/percoso) la variabile definita nello script sembra essere disponibile solo all'interno dello script stesso, cioèà non viene esportata...infatti se tento di usarla come variabile d'ambiente, dopo aver eseguito il relativo script, non funziona...

per caso voi sapete il motivo di tutto ciò?Beh, è semplice: le variabili di ambiente vengono "ereditate" dai processi figli, che però non possono alterare le variabili di ambiente del processo padre. Questo è un concetto basilare.

Se vuoi che uno script della shell venga eseguito non come processo figlio ma nel "contesto" della shell corrente (vedi man bash):

. filename [arguments]
source filename [arguments]
Read and execute commands from filename in the current shell environment and return the exit status of the last command executed from filename. [...]

akyra
16-03-2007, 09:54
grazie...sono un po' arrugginito su questi concetti...e si vede...