Hvordan frakobler jeg en variabel på kommandolinjen?

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

  • Prøv unset ALL_PROXY
  • @coffeMug kan lige så godt gøre det til et svar, du kan også overveje at stjæle noget info herfra: stackoverflow.com/a/12263914 / 1081936
  • ud over det accepterede svar, hvis der ' en kommando, kører du ofte, der bruger en miljøvariabel, som du ' Hvis du ikke vil indstille eller ændre for resten af din shell-session, kan du køre det som: $ ALL_PROXY=http://proxy.example.com:8080 yaourt der kun indstiller envvar til kommandokørslen . Du kan placere så mange FOO=bar BAZ=bat variabler, som du vil have, før kommandoen køres.

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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *