Anonym bruker
Hvordan angir jeg en brukermiljøvariabel? (permanent, ikke økt)
Dette irriterer meg. Jeg har sett flere forslag (alle med forskjellige filer og syntaks), og ingen av dem fungerte.
Hvordan setter jeg en miljøvariabel for en bestemt bruker? Jeg bruker debian squeeze. Hva er den nøyaktige syntaksen jeg skal legge inn i filen for å gjøre ABC = "123"?
145
3
Du må legge inn deklarasjonen i initialiseringsfilene til skallet ditt:
Hvis du bruker bash, ash, ksh eller et annet Bourne-lignende skall, kan du legge til
i filen
.profile
(${HOME}/.profile
). Dette er standardsituasjonen på de fleste Unix-installasjoner, og spesielt på Debian.Hvis innloggingsskallet ditt er bash, kan du bruke
.bash_profile
(${HOME}/.bash_profile
) eller.bash_login
i stedet.Note: Hvis en av disse filene finnes og innloggingsskallet ditt er bash, leses ikke
.profile
når du logger inn via ssh eller på en tekstkonsoll, men den kan likevel bli lest i stedet for.bash_profile
hvis du logger inn fra det grafiske brukergrensesnittet. Hvis det ikke finnes noen.bash_profile
, bruker du.bashrc
.Hvis du har angitt zsh som påloggingsskall, bruker du
~/.zprofile
i stedet for~/.profile
.Hvis du bruker tcsh, legger du til
i
.login
-filen (${HOME}/.login
)Dette er en generell prosedyre du kan bruke for stort sett alle skall. Du må uansett vite hvilket skall brukeren vanligvis logger inn med:
Deretter må du finne ut hvilke dot-filer dette skallet normalt vil lese:
En snarvei som kan fungere, er å liste opp de dot-filene som inneholder navnet på skallet:
Hvis du vil sjekke om en av filene faktisk leses under innlogging, kan du ganske enkelt skrive ut filnavnet i hver av dem, for eksempel:
Når du logger inn, bør du da se hvilke filer som leses, og du kan bestemme hvilken du vil endre. Vær oppmerksom på at du ikke bør prøve å bruke
echo "$0"
eller lignende, fordi verdien av$0
avhenger av hvordan skallet behandler dot-filer, og kan være misvisende.Når det gjelder å erklære variabelen "permanent", må du være oppmerksom på at dette bare gjelder for økten. Det er ikke mulig å få tilgang til verdien av en variabel uten en økt, så den har ingen betydning utenfor en økt. Hvis du mener "skrivebeskyttet", er det skallavhengig, og i Bash kan du bruke:
hvis den allerede har en verdi, eller
for å tilordne den samtidig. Ikke alle skjell har denne funksjonen.
For å deklarere en variabel i de fleste skjell bør du bruke et variabelnavn (
[A-Za-z_][A-Za-z0-9_]*
), etterfulgt av et likhetstegn (og ingen mellomrom rundt likhetstegnet), deretter en verdi (helst med anførselstegn, med mindre verdien er en enkel[A-Za-z0-9_]+
). For eksempel:Bruk eksport.
For å sjekke om den er angitt, bruk
og/eller
Hvis du vil legge den til permanent, legger du til dette i filen
~/.bashrc
.