Мы знаем, что можем изменить переменные окружения bash, например, PATH
, используя скрипт инициализации, например .bashrc
. Просто напишите PATH=<VALUE>
и вы получите то, что хотите.
Но рассмотрим эту проблему:
У нас есть bash-скрипт с именем rc
:
#!/bin/bash
mySite="superUser"
export mySite
echo "the value of mySite is: $mySite"
Затем мы объявляем переменную mySite
, выполняем сценарий rc
и проверяем значение переменной:
$ declare -x mySite="super"
$ ./rc
the value of mySite is: superUser
$ echo $mySite
super
Значение по-прежнему super
. можем ли мы заключить, что дочерняя оболочка не может изменить переменную родительской оболочки напрямую, используя инструкцию типа VARIALBENAME=VLAUE
?
Наш rc
скрипт похож на .bashrc
, и как мы можем изменить значение переменной окружения bash, поместив в него PATH=<VLAUE>
, поскольку, когда выполнение .bashrc
закончено, переменная вызывающей оболочки по-прежнему не изменяется ?