Setarea variabilelor de mediu în Linux folosind Bash

voturi
58

În tcsh, am următorul scenariu de lucru:

#!/bin/tcsh
setenv X_ROOT /some/specified/path

setenv XDB    ${X_ROOT}/db
setenv PATH   ${X_ROOT}/bin:${PATH}

xrun -d xdb1 -i $1 > $2

Care este echivalent cu tcsh setenvfuncția în Bash?

Există un analog direct? Variabilele de mediu sunt pentru localizarea executabil.

Întrebat 24/10/2008 la 17:25
sursa de către utilizator
În alte limbi...                            


5 răspunsuri

voturi
6

Cred că sunteți în căutarea pentru export- deși am putea fi greșit .. n - am mai jucat cu tcsh înainte. Utilizați următoarea sintaxă:

export VARIABLE=value
Publicat 24/10/2008 la 17:28
sursa de către utilizator

voturi
90

export VAR=valueva seta VAR la valoarea. Incadrati - l în ghilimele simple dacă doriți spații, cum ar fi export VAR='my val'. Dacă doriți ca variabila să fie interpolate, folosiți ghilimele, cum ar fi export VAR="$MY_OTHER_VAR".

Publicat 24/10/2008 la 17:29
sursa de către utilizator

voturi
11

VAR=value seturi VAR la valoarea.

După aceea export VARse va da proceselor și copilului.

export VAR=value este o prescurtare a face ambele.

Publicat 24/10/2008 la 17:47
sursa de către utilizator

voturi
29

Motivul pentru care oamenii sugereaza de multe ori scris

VAR=value
export VAR

în loc de scurtă

export VAR=value

este faptul că forma mai funcționează în cochilii mai diferite decât forma scurtă. Dacă știi că de - a face cu bash, fie funcționează bine, desigur.

Publicat 24/10/2008 la 20:46
sursa de către utilizator

voturi
21

Setați o variabilă locală și mediu, folosind Bash pe Linux

Verificați dacă există variabile locale sau de mediu pentru o variabilă numită LOL în Bash:

el@server /home/el $ set | grep LOL
el@server /home/el $
el@server /home/el $ env | grep LOL
el@server /home/el $

Sanity de verificare, nici o variabilă locale sau de mediu numit LOL.

Setați o variabilă locală numită LOL în locale, dar nu și de mediu. Deci, set:

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ env | grep LOL
el@server /home/el $

Variabila „LOL“ există în variabilele locale, dar nu și variabile de mediu. LOL va dispărea dacă reporniți terminalul, logout / conectare sau a alerga exec bash.

Setați o variabilă locală, apoi debifați toate variabilele locale în Bash

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ exec bash
el@server /home/el $ set | grep LOL
el@server /home/el $

Ai putea, de asemenea, demarca doar variabila una din urmatoarele:

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ unset LOL
el@server /home/el $ set | grep LOL
el@server /home/el $

LOL variabilă locală este plecat.

Promovarea unei variabile locale pentru o variabilă de mediu:

el@server /home/el $ DOGE="such variable"
el@server /home/el $ export DOGE
el@server /home/el $ set | grep DOGE
DOGE='such variable'
el@server /home/el $ env | grep DOGE
DOGE=such variable

Rețineți că exportul face apar atât ca o variabilă locală și o variabilă de mediu.

DOGE variabilă Exportata de mai sus supraviețuiește o resetare Bash:

el@server /home/el $ exec bash
el@server /home/el $ env | grep DOGE
DOGE=such variable
el@server /home/el $ set | grep DOGE
DOGE='such variable'

Nesetat toate variabilele de mediu:

Trebuie să scoate o cutie de Chuck Norris pentru a reseta toate variabilele de mediu fără deconectare / conectare:

el@server /home/el $ export CAN="chuck norris"
el@server /home/el $ env | grep CAN
CAN=chuck norris
el@server /home/el $ set | grep CAN
CAN='chuck norris'
el@server /home/el $ env -i bash
el@server /home/el $ set | grep CAN
el@server /home/el $ env | grep CAN

Ați creat o variabilă de mediu, și apoi resetați terminalul pentru a scăpa de ele.

Sau ați putea stabili și demarca manual o variabilă de mediu ca aceasta:

el@server /home/el $ export FOO="bar"
el@server /home/el $ env | grep FOO
FOO=bar
el@server /home/el $ unset FOO
el@server /home/el $ env | grep FOO
el@server /home/el $
Publicat 20/08/2014 la 14:37
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more