Pokusil jsem se pomocí následujícího příkazu nastavit proxy na yaourt:
export ALL_PROXY=http://proxy.example.com:8080
Otázkou je, jak deaktivovat proxy na yaourt? Jak mohu obecně zrušit hodnotu proměnné v aktuálním prostředí?
Komentáře
Odpovědět
Chcete-li odstranit proměnnou prostředí, spusťte
unset ALL_PROXY
Všimněte si, že proměnná prostředí se projeví pouze v programu a program jej startuje. Pokud nastavíte proměnnou prostředí v jednom okně prostředí, nebude to mít vliv na ostatní okna prostředí.
Pokud jste do inicializačního souboru přidali export ALL_PROXY=…, odeberte odtamtud.
Můžete spustit program export bez argumentů, abyste zjistili, jaké proměnné prostředí jsou nastaveny v aktuálním prostředí.
Nezapomeňte, že Chcete-li zpřístupnit proměnnou prostředí pro programy spuštěné tímto prostředím, musíte ji exportovat, a to buď spuštěním export VAR po přiřazení VAR=VALUE nebo jejich kombinací (export VAR=VALUE).
Komentáře
- Myslím, že ' není podstatné, aby k
export VARdošlo po přiřazení. Pozor:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'tiskne " F2 = 2 \ nF1 = 2 ". -
unsetje také nutné k vymazání asociativních bash polí (tj. bash " hash tabulek " nebo " dicts "), jak tento návod vysvětluje v části s názvem " Zúčtování ": umělý svět net/blog/2012/10/17/… .
Odpověď
Chcete-li zrušit vázanou proměnnou v bash, použijte unset VARIABLE (ve vašem případě unset ALL_PROXY). Tento příkaz skutečně odstraní proměnnou. Hodnotu proměnné můžete také vyprázdnit pomocí
VARIABLE=
nebo
VARIABLE=""
Rozdíl spočívá v tom, že tyto dva příkazy proměnnou neodstraní. Rozdíl můžete zjistit pomocí příznaku -u s set přinutit ji, aby při nahrazování považovala nenastavené proměnné za chybu:
/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
Ve výše uvedeném příkladu si bash stěžuje na var je nevázaný (po zrušení jeho hodnoty), což je očekávaná chyba (všimněte si, že k tomu nedochází ve druhém příkazu echo, což znamená, že var má hodnotu, která je empty nebo null).
Komentáře
- co když mít proměnnou v mém souboru skriptu skriptu a získávám tento soubor, jak to tedy zruším?
- @Abhinav ve skriptu použije
unset. Totéž platí.
unset ALL_PROXY$ ALL_PROXY=http://proxy.example.com:8080 yaourtkterý nastaví envvar pouze na spuštění příkazu . Před spuštěním příkazu můžete vložit tolikFOO=bar BAZ=batproměnných, kolik chcete.