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 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.
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=bat
változót helyezhet el, amennyit csak akar.