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
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.
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
som bare vil sette envvar for kommandokjøringen . Du kan sette så mangeFOO=bar BAZ=bat
variabler som du vil før kommandoen skal kjøres.