Kuinka muuttuja poistetaan komentoriviltä?

Olen kokeillut seuraavaa komentoa asettaaksesi välityspalvelimen asetukselle yaourt:

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

Kysymys on siitä, miten välityspalvelin poistetaan käytöstä yaourt? Kuinka voin yleensä poistaa muuttujan arvon nykyisestä kuoresta?

Kommentit

  • Kokeile unset ALL_PROXY
  • @coffeMug voi myös tehdä siitä vastauksen, voit myös harkita joidenkin tietojen varastamista täältä: stackoverflow.com/a/12263914 / 1081936
  • hyväksytyn vastauksen lisäksi jos suoritat usein ' sa -komennon, joka käyttää ympäristömuuttujaa, jonka ' d ei ole asetettu tai muutettu loppuosa shell-istunnostasi, voit suorittaa sen seuraavasti: $ ALL_PROXY=http://proxy.example.com:8080 yaourt, joka asettaa envvarin vain komentoajolle . Voit laittaa niin monta FOO=bar BAZ=bat muuttujaa kuin haluat ennen komennon suorittamista.

Vastaa

Poista ympäristömuuttuja suorittamalla

unset ALL_PROXY 

Huomaa, että ympäristömuuttuja vaikuttaa vain ohjelmassa ja sen käynnistää. Jos asetat ympäristömuuttujan yhteen shell-ikkunaan, se ei vaikuta muihin shell-ikkunoihin.

Jos olet lisännyt export ALL_PROXY=… alustustiedostoon, poista se sieltä.

Voit suorittaa export ilman argumentteja nähdäksesi, mitkä ympäristömuuttujat on asetettu nykyiseen kuoreen.

Muista, että Jotta shell-muuttuja olisi kyseisen kuoren käynnistämien ohjelmien käytettävissä, sinun on vietävä se joko suorittamalla export VAR tehtävän VAR=VALUE tai yhdistämällä nämä kaksi (export VAR=VALUE).

Kommentit

  • Mielestäni se on ' ei ole välttämätöntä, että export VAR esiintyy tehtävän jälkeen. Huomaa: sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F' tulostaa " F2 = 2 \ nF1 = 2 ".
  • unset vaaditaan myös assosiatiivisten bash-taulukoiden tyhjentämiseen (ts. bash " hash-taulukot " tai " dict "), kuten tämä opetusohjelma selittää osiossa " Tyhjennetään ": artificialworlds.net/blog/2012/10/17/… .

vastaus

Sidotun muuttujan poistaminen bashissa käytä unset VARIABLE (unset ALL_PROXY sinun tapauksessasi). Tämä komento poistaa muuttujan. Voit myös asettaa muuttujan arvon tyhjäksi

VARIABLE= 

tai

VARIABLE="" 

Erona on, että kaksi viimeksi mainittua käskyä eivät poista muuttujaa. Voit nähdä eron käyttämällä -u -lippua set pakottaa se käsittelemään asettamattomat muuttujat virheenä korvaamalla:

/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 

Yllä olevassa esimerkissä bash valittaa var ei ole sidottu (sen arvon poistamisen jälkeen), joka on odotettu virhe (huomaa, että tätä ei tapahdu toisessa kaiku-komennossa, mikä tarkoittaa, että var: n arvo on empty tai null).

Kommentit

  • entä jos minä Shell-komentotiedostossani on muuttuja ja minä hankin kyseisen tiedoston. Kuinka sitten aion poistaa sen?
  • @Abhinav käyttää komentosarjassa unset. pätee.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *