1

Я просто пишу простой Bash-скрипт на CentOS 6.2:

[root@hadoop1 ~]# vi bash_startup

#! /bin/bash
export r=1

Возвращение к командной строке: и запуск с использованием ./bash_startup

[root@hadoop1 ~]# echo $r

[root@hadoop1 ~]#

echo $r дает мне результата, почему?

1 ответ1

3

Изменения переменных среды в скрипте влияют только на вызывающую оболочку, если вы вызываете скрипт следующим образом:

. ./script.sh

Или же:

source ./script.sh

Не:

bash ./script.sh

Или же:

./script.sh

Это связано с тем, что первые два способа запускают скрипт в текущей оболочке, а два последних запускают подоболочку, а изменения переменных среды не распространяются вверх из подоболочек.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .