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
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 VAResiintyy 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 ". -
unsetvaaditaan 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.
unset ALL_PROXY$ ALL_PROXY=http://proxy.example.com:8080 yaourt, joka asettaa envvarin vain komentoajolle . Voit laittaa niin montaFOO=bar BAZ=batmuuttujaa kuin haluat ennen komennon suorittamista.