Přidal jsem tento "export HISTCONTROL=ignoredups" řádek v ~/.bashrc
soubor, abyste zamezili duplicitním záznamům v historii Bash na mém linuxovém desktopu. Všimli jste si, že jsem uvedl předponu HISTCONTROL
? proměnná s "export"
? Víte, co je "export"
možnost pro? Pokud vás zajímá, jaký je rozdíl mezi definováním proměnných bash s možností exportu a bez ní, čtěte dále!
Rozdíl mezi definováním proměnných Bash s exportem a bez exportu
Proměnnou definujeme pomocí export
aby byl dostupný všem dílčím procesům (nebo podřízeným procesům). Význam – pokud definujete proměnnou pomocí export
jako níže,
export variable_name=value
Proměnná je dostupná jakémukoli dílčímu procesu spustíte z tohoto procesu shellu.
Pokud definujete proměnnou bez export
jako níže,
variable_name=value
Proměnná je omezena na shell a není dostupná žádnému jinému podprocesu. Můžete jej použít pro dočasné a/nebo smyčkové proměnné.
Dovolte mi ukázat vám příklad, abyste mu lépe porozuměli.
Dovolte mi definovat proměnnou s názvem "ostechnix"
bez "export"
jako níže:
$ ostechnix="Welcome to ostechnix.com blog!"
Nyní zobrazte hodnotu pomocí příkazu "echo":
$ echo $ostechnix
Zobrazí hodnotu proměnné ostechnix:
Welcome to ostechnix.com blog!
Nyní spusťte novou relaci prostředí Bash spuštěním následujícího příkazu:
$ bash
Poté zkuste zobrazit hodnotu proměnné ostechnix pomocí echo
příkaz:
$ echo $ostechnix
Vidět? Nic to nevrací! Vidíte pouze prázdný výstup. Je tedy dokázáno, že když definujeme proměnnou bez export
, nebude k dispozici podřízeným procesům.
Definujme znovu stejnou proměnnou pomocí export
možnost:
$ export ostechnix="Welcome to ostechnix.com blog!"
Zobrazte hodnotu proměnné:
$ echo $ostechnix
Ukázkový výstup:
Welcome to ostechnix.com blog!
Spusťte novou relaci prostředí:
$ bash
Zkuste znovu zobrazit hodnotu proměnné:
$ echo $ostechnix
Nyní vrátí hodnotu.
Export tedy zpřístupní proměnnou všem dalším podřízeným procesům v tomto prostředí shellu.