GNU/Linux >> Linux Esercitazione >  >> Linux

Impostazione delle variabili di ambiente Linux

Questo è un estratto dalla pagina man di Bash:

esporta [-fn] [nome[=parola]] ...
esporta -p
I nomi forniti sono contrassegnati per l'esportazione automatica nell'ambiente dei comandi eseguiti successivamente. Se viene data l'opzione -f, i nomi si riferiscono a funzioni...

Se hai bisogno della variabile solo nell'ambiente corrente, non è necessario utilizzare l'esportazione.

var=value

Modifica:

Senza esportazione:solo ambiente corrente. Con l'esportazione:ambiente corrente e ambienti figlio.

Ecco una dimostrazione dell'effetto dell'esportazione sulla disponibilità di una variabile in un ambiente figlio e che i cambiamenti nell'ambiente figlio non influiscono sull'ambiente padre:

$ var1=123
$ export var2=456
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
$ var3=789 bash -c 'echo "child [$var1] [$var2] [$var3]"; var1=111; var2=222; var3=333; echo "child [$var1] [$var2] [$var3]"'
child [] [456] [789]
child [111] [222] [333]
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []

Dopo il primo eco (echo "parent..." ) vedi "123" e "456" perché entrambi var1 e var2 sono attivi nell'ambiente attuale. Non vedi un valore per var3 perché non è ancora impostato.

Dopo la riga che inizia con "var3=... " non vedi un valore per var1 perché non è stato esportato. vedere un valore per var2 perché era esportato. Viene visualizzato un valore per var3 perché è stato impostato solo per l'ambiente figlio .

(bash -c è equivalente all'esecuzione di uno script con il contenuto dell'argomento al -c opzione. Uno script o altro eseguibile o, in questo caso, l'argomento di bash -c diventa un figlio dell'ambiente attuale che, di conseguenza, è, ovviamente, il genitore del bambino.)

Nello "script" vengono modificati i valori della variabile. Ora emette quei nuovi valori.

Una volta terminato lo "script", l'esecuzione ritorna all'ambiente genitore (la riga di comando in questo caso). Dopo l'ultimo eco, vengono visualizzati i valori originali perché le modifiche apportate nell'ambiente figlio non influiscono sul genitore.


Lo dici tu

Uso sempre il comando export per impostare la variabile d'ambiente

Dal modo in cui l'hai formulato, sembra che tu stia davvero cercando di chiederti come fai a far persistere una variabile ambientale. Per farlo dovresti inserire il tuo export VAR="foo" istruzione nel tuo file $HOME/.bash_profile (se stai usando bash). Se vuoi che la variabile ambientale persista per tutti gli utenti tranne root, aggiungila a /etc/profile. Se vuoi che venga aggiunto anche per l'utente root, impostalo in /root/.bash_profile .

Funzionerà per tutte le shell di login in cui bash è la shell preferita. Per le shell non di login, devi usare .bashrc. Non ho approfondimenti da offrire per altre shell :D


Linux
  1. Impostazione delle variabili d'ambiente della shell | BASH Shell

  2. Comando di esportazione Linux

  3. Come impostare, elencare e rimuovere variabili d'ambiente in Linux

  4. Linux Mint:aggiunta di variabili d'ambiente in modo permanente

  5. Come impostare le variabili di ambiente Linux con Ansible

Come impostare/disimpostare le variabili d'ambiente in Linux

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux

Guida dettagliata alle variabili d'ambiente Linux

Esporta comando in Linux

Variabili d'ambiente Linux

Configurazione di un ambiente di sviluppo brillante all'interno di Linux su Windows 10