Am încercat următoarea comandă pentru a seta Proxy pe yaourt:
export ALL_PROXY=http://proxy.example.com:8080
Întrebarea este cum să dezactivați proxy-ul pe yaourt? În general, cum pot anula valoarea unei variabile în shell-ul curent?
Comentarii
Răspuns
Pentru a elimina o variabilă de mediu, rulați
unset ALL_PROXY
Rețineți că o variabilă de mediu are efect doar într-un program și programul lansează. Dacă setați o variabilă de mediu într-o fereastră shell, aceasta nu afectează alte ferestre shell.
Dacă ați adăugat export ALL_PROXY=… la un fișier de inițializare, eliminați de acolo.
Puteți rula export fără argumente pentru a vedea ce variabile de mediu sunt setate în shell-ul curent.
Amintiți-vă că pentru a face o variabilă shell disponibilă pentru programele pornite de acel shell, trebuie să o exportați, fie executând export VAR după atribuirea VAR=VALUE sau prin combinarea celor două (export VAR=VALUE).
Comentarii
- Cred că nu este esențial ca
export VARsă apară după atribuire. Observați:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'imprimă " F2 = 2 \ nF1 = 2 ". -
unseteste, de asemenea, necesar pentru a șterge matrici asociative bash (adică: bash " tabele hash ", sau " dicte "), așa cum explică acest tutorial în secțiunea intitulată " Clearing ": artificialworlds.net/blog/2012/10/17/… .
Răspuns
Pentru a anula o variabilă legată în bash utilizați unset VARIABLE (unset ALL_PROXY în cazul dvs.). Această comandă șterge de fapt variabila. De asemenea, puteți seta valoarea unei variabile să fie golită de
VARIABLE=
sau
VARIABLE=""
Diferența este că cele două comenzi din urmă nu șterge variabila. Puteți vedea diferența utilizând semnalizatorul -u cu set pentru a-l forța să trateze variabilele nesetate ca pe o eroare în timp ce înlocuiește:
/home/user1> var="" /home/user1> echo $var /home/user1> set -u /home/user1> echo $var /home/user1> unset var /home/user1> echo $var -bash: var: unbound variable
În exemplul de mai sus, bash se plânge de var este nelegat (după dezactivarea valorii sale), care este eroarea așteptată (rețineți că acest lucru nu se întâmplă în a doua comandă echo, ceea ce înseamnă că var are o valoare care este empty sau null).
Comentarii
- ce se întâmplă dacă Am o variabilă în fișierul meu script de shell și am sursă acel fișier, atunci cum voi dezactiva acest lucru?
- @Abhinav utilizați
unsetîn script. se aplică.
unset ALL_PROXY$ ALL_PROXY=http://proxy.example.com:8080 yaourtcare va seta envvar numai pentru executarea comenzii . Puteți pune cât mai multeFOO=bar BAZ=batvariabile pe care le doriți înainte ca rularea comenzii.