Jeg har prøvet følgende kommando for at indstille Proxy til yaourt
:
export ALL_PROXY=http://proxy.example.com:8080
Spørgsmålet er, hvordan man frakobler proxyen til yaourt
? Hvordan kan jeg generelt frakoble værdien af en variabel i den aktuelle shell?
Kommentarer
Svar
For at fjerne en miljøvariabel skal du køre
unset ALL_PROXY
Bemærk, at en miljøvariabel kun træder i kraft i et program og programmet det starter. Hvis du indstiller en miljøvariabel i et shell-vindue, påvirker det ikke andre shell-vinduer.
Hvis du har tilføjet export ALL_PROXY=…
til en initialiseringsfil, skal du fjerne det derfra.
Du kan køre export
uden argumenter for at se, hvilke miljøvariabler der er indstillet i den aktuelle shell.
Husk at for at gøre en shellvariabel tilgængelig for de programmer, der startes af den shell, skal du eksportere den, enten ved at køre export VAR
efter opgaven VAR=VALUE
eller ved at kombinere de to (export VAR=VALUE
).
Kommentarer
- Jeg synes det ' er ikke vigtigt, at
export VAR
forekommer efter tildelingen. Overhold:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'
udskriver " F2 = 2 \ nF1 = 2 ". -
unset
er også påkrævet for at rydde associative bash-arrays (dvs. bash " hash-tabeller " eller " dikterer "), som denne vejledning forklarer under afsnittet med titlen " Rydning ": artificialworlds.net/blog/2012/10/17/… .
Svar
For at fjerne markeringen af en bundet variabel i bash skal du bruge unset VARIABLE
(unset ALL_PROXY
i dit tilfælde). Denne kommando sletter faktisk variablen. Du kan også indstille værdien af en variabel til at være tom ved
VARIABLE=
eller
VARIABLE=""
Forskellen er, at de to sidstnævnte kommandoer ikke sletter variablen. Du kan se forskellen ved at bruge -u
-flagget med set
for at tvinge det til at behandle de ikke-indstillede variabler som en fejl under udskiftning:
/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
I ovenstående eksempel klager bash over var
er ubundet (efter at have nulstillet dens værdi), hvilket er den forventede fejl (bemærk at dette ikke sker i anden ekkokommando, hvilket betyder at var
har en værdi, der er empty
eller null
).
Kommentarer
- hvad hvis jeg har en variabel i min shell-scriptfil, og jeg kilder den fil, hvordan skal jeg så afbryde den?
- @Abhinav brug
unset
i scriptet. gælder.
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
der kun indstiller envvar til kommandokørslen . Du kan placere så mangeFOO=bar BAZ=bat
variabler, som du vil have, før kommandoen køres.