GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi definováním proměnných Bash s exportem a bez exportu

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.


Linux
  1. Rozdíl mezi ‚A‘ na příkazovém řádku (bash)??

  2. Definování proměnné s exportem nebo bez exportu

  3. Rozdíl mezi ${} a $() v Bash

  1. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  2. Exportujte proměnnou z bash a použijte ji v Pythonu

  3. Rozdíl mezi příkazy v bash skriptu a příkazy v terminálu

  1. Rozdíl mezi proměnnými Shell, které se exportují, a těmi, které nejsou v Bash?

  2. Rozdíl v použití mezi proměnnými shellu a proměnnými prostředí?

  3. Rozdíl mezi Eot a Eof?