Локальные переменные в Linux

Когда мы экспортируем локальную переменную, объявленную в текущей оболочке, она передается в будущие вложенные оболочки, процессы, дочерние процессы или будущие дочерние процессы? Мне сказали, что это будет передано будущим субоболочкам. Это правильно?

2 ответа

Решение

Этот простой тест ответит вам сам по себе:

$ VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"

$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$ 

Разбивая это:

Нет экспорта...

$ VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"

$

... ведет к VAR1 не определяется в ребенке.

Хотя с export...

$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$ 

... ведет к VAR1 быть определенным в ребенке.

Просто попробуй?

$ export foo=bar
$ bash
$ echo $foo
bar
$ bash
$ echo $foo
bar
$ exit
$ exit
$

д-р: да.

Другие вопросы по тегам