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
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 VARa 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 ". -
unsetszü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
unsetparancsfájlt. vonatkozik.
unset ALL_PROXY$ 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 annyiFOO=bar BAZ=batváltozót helyezhet el, amennyit csak akar.