Jag har försökt följande kommando för att ställa in Proxy på yaourt
:
export ALL_PROXY=http://proxy.example.com:8080
Frågan är hur man avmarkerar proxyn på yaourt
? Hur kan jag i allmänhet avmarkera värdet på en variabel i det aktuella skalet?
Kommentarer
Svara
För att ta bort en miljövariabel, kör
unset ALL_PROXY
Observera att en miljövariabel bara träder i kraft i ett program och programmet det lanserar. Om du ställer in en miljövariabel i ett skalfönster påverkar det inte andra skalfönster.
Om du har lagt till export ALL_PROXY=…
till en initialiseringsfil tar du bort det därifrån.
Du kan köra export
utan argument för att se vilka miljövariabler som är inställda i det aktuella skalet.
Kom ihåg att för att göra en skalvariabel tillgänglig för de program som startas av det skalet måste du exportera den, antingen genom att köra export VAR
efter uppgiften VAR=VALUE
eller genom att kombinera de två (export VAR=VALUE
).
Kommentarer
- Jag tror att det ' är inte nödvändigt att
export VAR
inträffar efter tilldelningen. Observera:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'
skriver ut " F2 = 2 \ nF1 = 2 ". -
unset
krävs också för att rensa associativa basmatriser (dvs. bash " hashtabeller " eller " dikterar "), som denna handledning förklarar under avsnittet med titeln " Rensa ": artificialworlds.net/blog/2012/10/17/… .
Svar
För att avmarkera en bunden variabel i bash använder du unset VARIABLE
(unset ALL_PROXY
i ditt fall). Detta kommando raderar faktiskt variabeln. Du kan också ställa in värdet på en variabel till att vara tom genom
VARIABLE=
eller
VARIABLE=""
Skillnaden är att de två senare kommandona inte tar bort variabeln. Du kan se skillnaden genom att använda -u
-flaggan med set
för att tvinga den att behandla de inställda variablerna som ett fel när de ersätter:
/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 exemplet ovan klagar bash på var
är obundet (efter att ha avaktiverat värdet) vilket är det förväntade felet (notera att detta inte händer i andra ekokommandot, vilket betyder att var
har ett värde som är empty
eller null
).
Kommentarer
- vad händer om jag har en variabel i min shell-skriptfil och jag köper den filen, hur ska jag då avmarkera den?
- @Abhinav använder
unset
i skriptet. gäller.
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
som bara ställer in envvar för kommandokörningen . Du kan placera så mångaFOO=bar BAZ=bat
variabler som du vill innan kommandot körs.