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