Локальные переменные в 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
$
д-р: да.