GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il modo migliore per impostare una variabile d'ambiente in .bashrc?

Soluzione 1:

Il modo migliore

export VAR=value

La differenza

Fare

VAR=value

imposta solo la variabile per la durata dello script (.bashrc in questo caso). I processi figlio (se presenti) dello script non avranno VAR definito e una volta terminato lo script VAR è andato.

export VAR=value

aggiunge esplicitamente VAR all'elenco delle variabili passate ai processi figlio. Vuoi provarlo? Apri una shell, fai

PS1="foo > "
bash --norc

La nuova shell ottiene il prompt predefinito. Se invece fai qualcosa come

export PS1="foo > "
bash --norc

la nuova shell ottiene il prompt che hai appena impostato.

Aggiornamento: come nota Ian Kelling sotto le variabili impostate in .bashrc persistere nella shell che ha originato .bashrc . Più in generale, ogni volta che la shell genera uno script (usando il source scriptname command) le variabili impostate nello script persistono per tutta la vita della shell.

Soluzione 2:

Entrambi sembrano funzionare bene, ma l'utilizzo dell'esportazione assicurerà che la variabile sia disponibile per subshell e altri programmi. Per provarlo, prova questo.

Aggiungi queste due righe al tuo file .bashrc

TESTVAR="no export"
export MYTESTVAR="with export"

Quindi apri una nuova shell.

Esecuzione di echo $TESTVAR e echo $MYTESTVAR mostrerà il contenuto di ciascuna variabile. Ora all'interno della stessa shell rimuovi quelle due righe dal tuo file .bashrc ed esegui bash per iniziare una subshell.

Esecuzione di echo $TESTVAR avrà un output vuoto, ma eseguirà echo $MYTESTVAR visualizzerà "con esportazione"


Linux
  1. Come impostare una variabile di ambiente sulla riga di comando e farla apparire nei comandi?

  2. Esempi di comandi di esportazione Linux (come impostare le variabili di ambiente)

  3. Qual è la dimensione massima del valore di una variabile di ambiente Linux?

  4. Imposta la variabile di ambiente nello script/accesso della shell nell'applicazione Tomcat

  5. Come impostare la variabile di ambiente all'interno di GDB usando il comando shell?

Che cos'è la shell in Linux?

Come impostare la variabile d'ambiente in Bash

Che cos'è Subshell in Linux?

Dov'è impostata la variabile d'ambiente $HOME?

Qual è il modo migliore per imparare SELinux?

Qual è la posizione corretta per la variabile PS1 Shell?