Utente anonimo
Altro
Come si imposta una variabile d'ambiente utente? (in modo permanente, non in sessione)
Questo mi irrita. Ho visto diversi suggerimenti (tutti con file e sintassi diversi) e nessuno di essi ha funzionato.
Come posso impostare una variabile d'ambiente per un utente specifico? Sono su debian squeeze. Qual è la sintassi esatta che dovrei mettere nel file per fare ABC = "123"?
145
3
Dovete mettere la dichiarazione nei file di inizializzazione della vostra shell:
Se state usando bash, ash, ksh o qualche altra shell in stile Bourne, potete aggiungere
nel vostro file
.profile
(${HOME}/.profile
). Questa è la situazione predefinita sulla maggior parte delle installazioni Unix, e in particolare su Debian.Se la tua shell di login è bash, puoi usare invece
.bash_profile
(${HOME}/.bash_profile
) o.bash_login
.Nota: Se uno di questi file esiste e la tua shell di login è bash,
.profile
non viene letto quando accedi tramite ssh o su una console di testo, ma potrebbe comunque essere letto al posto di.bash_profile
se accedi dalla GUI. Inoltre, se non c'è un.bash_profile
, allora usa.bashrc
.Se hai impostato zsh come shell di login, usa
~/.zprofile
invece di~/.profile
.Se stai usando tcsh, aggiungi
nel file
.login
(${HOME}/.login
)Questa è una procedura generale che potete usare praticamente per qualsiasi shell. In ogni caso, dovete sapere con quale shell l'utente accede normalmente:
Poi dovete capire quali file di punti questa shell leggerebbe normalmente:
Una scorciatoia che potrebbe funzionare è quella di elencare quei file di punti che contengono il nome della shell:
Se volete controllare se uno dei file viene effettivamente letto durante il login, potete semplicemente stampare il nome del file in ognuno di essi, per esempio:
Quando si effettua il login, si dovrebbe quindi vedere quali file vengono letti, e si può decidere quale modificare. Fate attenzione a non provare a usare
echo "$0"
o simili, perché il valore di$0
dipende da come la shell processa i file punto, e potrebbe essere fuorviante.Quando si tratta di dichiarare la variabile "permanentemente", notate che questo si estende solo alla sessione. Non c'è modo di accedere al valore di una variabile senza una sessione, quindi non ha significato al di fuori di essa. Se intendete "read-only", questo dipende dalla shell, e in Bash potete usare:
se ha già un valore, o
per assegnarlo allo stesso tempo. Non tutte le shell hanno questa caratteristica.
Per dichiarare una variabile nella maggior parte delle shell, dovresti usare un nome di variabile (
[A-Za-z_][A-Za-z0-9_]*
), seguito da un segno di uguale (e nessuno spazio intorno al segno di uguale), poi un valore (preferibilmente quotato a meno che il valore sia un semplice[A-Za-z0-9_]+
). Per esempio:Usare l'esportazione.
Per controllare se è impostato, usare
e/o
Per aggiungerlo permanentemente, aggiungi questo al tuo file
~/.bashrc
.