Puncte:0

cum se citește o variabilă de mediu declarată în /etc/environment din bash?

drapel mx

Cum fac eu citit sau accesați TRAVERSA variabila de mediu de mai jos?

nicholas@gondor:~$ 
nicholas@gondor:~$ printenv | grep CALEA
WINDOWPATH=2
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
nicholas@gondor:~$ 
nicholas@gondor:~$ printenv | grep TRAVERSA
nicholas@gondor:~$ 
nicholas@gondor:~$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"



TRAVERSE="/home/nicholas/some_directory"
nicholas@gondor:~$ 

am fugit sursa ~/.bashrc fara rezultat. Mă aștept că, dacă ar fi să repornesc, variabila ar fi lizibilă, dar asta pare extrem.

Vezi si:

https://stackoverflow.com/q/39296472/4531180

Gunnar Hjalmarsson avatar
drapel uz
V-ați reconectat după ce ați adăugat variabila TRAVERSE la `/etc/environment`?
Nicholas Saunders avatar
drapel mx
nu, încercam să evit asta. Plănuiesc să mă bat cu niște vars pentru un pic. acesta este singurul mod @GunnarHjalmarsson de a reîncărca sau reîmprospăta vars-urile?
Gunnar Hjalmarsson avatar
drapel uz
Aș spune că este calea „corectă”. Dar puteți pur și simplu să faceți `source /etc/environment`, care va actualiza procesul bash curent cu ultimele dumneavoastră modificări. Ei bine, noile variabile nu vor fi exportate în mediu în acest fel, ci sunt disponibile doar ca variabile shell.
raj avatar
drapel cn
raj
Prin definiție, `/etc/environment` este citit la autentificare, de către procesul de conectare, înainte ca shell-ul sau GUI să fie pornit și numai în acel moment. Prin urmare, reconectarea este o modalitate adecvată de a aplica modificări în acest fișier.
muru avatar
drapel us
Sintaxa completă a lui `/etc/environment` diferă mult de cea a scripturilor shell, așa că, deși fișierul dvs. particular ar putea fi găsit, nu toate fișierele de mediu valide pot fi.
muru avatar
drapel us
Dacă îl doriți doar pentru shell-ul dvs. actual, de ce nu setați și exportați singur variabila?
Gunnar Hjalmarsson avatar
drapel uz
@muru: Posibil să o amesteci cu sintaxa `~/.pam_environment`.
Puncte:1
drapel cn

Dacă utilizați shell-ul bash

. /etc/environment

fără punct, variabilele definite în fișierul script nu sunt transmise shell-ului tău curent.

De exemplu:

$ cat b.sh
TRAVERSE="Un alt ceva"
$ echo $TRAVERSE

$ ./b.sh
$ echo $TRAVERSE

$ . ./b.sh
$ echo $TRAVERSE
Un alt Ceva
$ 
SEWTGIYWTKHNTDS avatar
drapel cn
`source /etc/environment` ar trebui să funcționeze totuși
Nicholas Saunders avatar
drapel mx
da, `source /etc/environment` funcționează. multumesc, era cam tarziu noaptea.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.