2015-08-11 11 views
11

Sto provando a trasferire la mia fine del file delle variabili di ambiente .bashrc alla fine del file/etc/environment.come modificare correttamente il file/etc/environment?

Ma ogni volta che cambio questo file non posso accedere al computer e annullare le modifiche tramite la modalità di visualizzazione CTRL + ALT + F2, quindi per risparmiare tempo, mi chiedo se la mia configurazione sia corretta prima di riavviare il mio computer.

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" 
JAVA_HOME="/usr/lib/jvm/java-8-oracle/​" 
CLASSPATH="JAVA_HOME/lib/:$CLASSPATH" 
PATH="$JAVA_HOME/bin/:$PATH" 
M2_HOME="/usr/share/maven/" 
M2="$M2_HOME/bin" 
PATH="$M2:$PATH" 

Ho apportato le modifiche come root, è corretto il modo in cui è stato modificato/etc/environment il file?

risposta

7

Non è possibile fare riferimento a variabili definite in precedenza nello stesso modo in cui si farebbe in .bashrc in/etc/environment. Vedi this section della wiki della Guida di Ubuntu Community,

"Non è un file di script, ma piuttosto è costituito da espressioni di assegnazione, una per riga."

Dai un'occhiata anche agli esempi di sintassi following answer.

+0

Come sapere se le variabili di ambiente $ JAVA_HOME o $ M2_HOME sono espansione variabile? Per il link che mi hai fornito, l'espansione delle variabili non funziona in/etc/environment. – ricardoramos

+0

Penso che 'PATH DEFAULT = $ {PATH}: $ {HOME}/MyPrograms' sarebbe classificato come _espansione variabile_. L'atto di espandere una variabile già esistente con più contenuti, usando ':'. – mattias

+0

"Espansione variabile" significa "trasformare una variabile nel suo contenuto". Ecco come bash usa le variabili. Innanzitutto, bash legge il comando e "espande" tutte le variabili nei loro valori. Quindi bash esegue il comando. "'/etc/environment' non supporta l'espansione delle variabili "significa" "/ etc/environment' non può usare le variabili". – galgalesh

Problemi correlati