Jak zruším nastavení proměnné na příkazovém řádku?

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

  • Zkuste unset ALL_PROXY
  • @coffeMug by z toho mohl udělat odpověď, můžete také zvážit odcizení některých informací odtud: stackoverflow.com/a/12263914 / 1081936
  • kromě přijaté odpovědi, pokud ' sa často spouštíte příkaz, který používá proměnnou prostředí, kterou ' d po zbytek relace shellu raději nenastavovat ani měnit, můžete jej spustit jako: $ ALL_PROXY=http://proxy.example.com:8080 yaourt který nastaví envvar pouze na spuštění příkazu . Před spuštěním příkazu můžete vložit tolik FOO=bar BAZ=bat proměnných, kolik chcete.

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 VAR doš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 ".
  • unset je 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í.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *