Hogyan állíthatom vissza a változót a parancssorban?

A következő paranccsal proxy-t állítottam be az yaourt címre:

export ALL_PROXY=http://proxy.example.com:8080 

A kérdés az, hogy miként állíthatjuk le a yaourt proxyt? Általában hogyan állíthatom be egy változó értékét az aktuális héjban?

Megjegyzések

  • Próbálja ki a unset ALL_PROXY
  • A @coffeMug ebből válaszként is válhat, fontolóra vehet néhány információt innen: stackoverflow.com/a/12263914 / 1081936
  • az elfogadott válasz mellett, ha van ' sa parancs, amelyet gyakran futtat, amely egy olyan környezeti változót használ, amelyet ' inkább ne állítsa be vagy módosítsa a shell munkamenetének hátralévő részében, futtathatja úgy: $ ALL_PROXY=http://proxy.example.com:8080 yaourt, amely az envvar-ot csak a parancsfuttatáshoz állítja be . A parancs futtatása előtt annyi FOO=bar BAZ=bat változót helyezhet el, amennyit csak akar.

Válasz

Környezeti változó eltávolításához futtassa a következőt:

unset ALL_PROXY 

Vegye figyelembe, hogy a környezeti változó csak egy programban és annak programjában érvényes. indít. Ha egy környezeti változót egy héjablakba állít be, az nem befolyásolja a többi héjablakot.

Ha export ALL_PROXY=… fájlt adott hozzá egy inicializáló fájlhoz, távolítsa el onnan.

A export futtatásával argumentumok nélkül futtathatja, hogy milyen környezeti változók vannak beállítva az aktuális héjban.

Ne feledje, hogy Ha egy shell változót elérhetővé akar tenni az adott shell által elindított programok számára, akkor exportálnia kell, vagy a export VAR futtatásával a VAR=VALUE hozzárendelés után vagy a kettő kombinálásával (export VAR=VALUE).

Megjegyzések

  • szerintem ' nem feltétlenül szükséges, hogy a export VAR a feladat után következzen be. Figyelje meg: sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F' nyomtat " F2 = 2 \ nF1 = 2 ".
  • unset szükséges az asszociatív bash tömbök (például: bash " hash táblák ", vagy " dict "), ahogy ez az oktatóanyag a " Törlés ": artificialworlds.net/blog/2012/10/17/… .

Válasz

A kötött változó törléséhez a bash-ban használja a unset VARIABLE (unset ALL_PROXY az Ön esetében). Ez a parancs valóban törli a változót. A változó értékét üresre állíthatja a következővel is:

VARIABLE= 

vagy

VARIABLE="" 

A különbség az, hogy a két utóbbi parancs nem törli a változót. A különbséget a set -u zászló használatával láthatja. arra kényszeríteni, hogy a nem beállított változókat hibaként kezelje, miközben helyettesíti:

/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 

A fenti példában a bash var nincs kötve (az érték törlése után), amely a várható hiba (vegye figyelembe, hogy ez nem történik meg a második echo parancsban, ami azt jelenti, hogy var értéke empty vagy null).

Megjegyzések

  • mi van, ha én van egy változó a shell parancsfájlomban, és én állítom elő azt a fájlt, akkor hogyan fogom ezt törölni?
  • @Abhinav használja a unset parancsfájlt. vonatkozik.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük