Hvordan fjerner jeg en variabel på kommandolinjen?

Jeg har prøvd følgende kommando for å sette Proxy på yaourt:

export ALL_PROXY=http://proxy.example.com:8080 

Spørsmålet er hvordan du deaktiverer proxyen på yaourt? Hvordan kan jeg generelt slå av verdien til en variabel i gjeldende skall?

Kommentarer

  • Prøv unset ALL_PROXY
  • @coffeMug kan like godt gjøre det til et svar, du kan også vurdere å stjele litt informasjon herfra: stackoverflow.com/a/12263914 / 1081936
  • i tillegg til det aksepterte svaret, hvis det ' en kommando du ofte kjører som bruker en miljøvariabel som du ' Hvis du ikke vil angi eller endre for resten av shell-økten, kan du kjøre den slik: $ ALL_PROXY=http://proxy.example.com:8080 yaourt som bare vil sette envvar for kommandokjøringen . Du kan sette så mange FOO=bar BAZ=bat variabler som du vil før kommandoen skal kjøres.

Svar

For å fjerne en miljøvariabel, kjør

unset ALL_PROXY 

Merk at en miljøvariabel bare trer i kraft i et program og programmet det lanserer. Hvis du setter en miljøvariabel i ett skallvindu, påvirker det ikke andre skallvinduer.

Hvis du har lagt til export ALL_PROXY=… til en initialiseringsfil, fjern det derfra.

Du kan kjøre export uten argumenter for å se hvilke miljøvariabler som er satt i det nåværende skallet.

Husk at for å gjøre en skallvariabel tilgjengelig for programmene som er startet av det skallet, må du eksportere den, enten ved å kjøre export VAR etter oppgaven VAR=VALUE eller ved å kombinere de to (export VAR=VALUE).

Kommentarer

  • Jeg tror det ' er ikke viktig at export VAR skjer etter oppgaven. Observer: sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F' skriver ut " F2 = 2 \ nF1 = 2 ".
  • unset kreves også for å fjerne assosiative bash-matriser (dvs. bash " hash-tabeller ", eller " dikterer "), slik denne veiledningen forklarer under seksjonen med tittelen " Tømning ": artificialworlds.net/blog/2012/10/17/… .

Svar

For å deaktivere en begrenset variabel i bash, bruk unset VARIABLE (unset ALL_PROXY i ditt tilfelle). Denne kommandoen sletter faktisk variabelen. Du kan også sette verdien til en variabel til å være tom ved

VARIABLE= 

eller

VARIABLE="" 

Forskjellen er at de to sistnevnte kommandoene ikke sletter variabelen. Du kan se forskjellen ved å bruke -u flagget med set for å tvinge den til å behandle de usettede variablene som en feil mens du erstatter:

/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 eksemplet ovenfor klager bash over var er ubundet (etter at verdien er stengt) som er den forventede feilen (merk at dette ikke skjer i andre ekkokommando, noe som betyr at var har en verdi som er empty eller null).

Kommentarer

  • hva om jeg har en variabel i shell-skriptfilen min, og jeg kilder den filen, hvordan skal jeg da deaktivere den?
  • @Abhinav bruker unset i skriptet. gjelder.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *