Изменения переменных среды в скрипте влияют только на вызывающую оболочку, если вы вызываете скрипт следующим образом:
. ./script.sh
Или же:
source ./script.sh
Не:
bash ./script.sh
Или же:
./script.sh
Это связано с тем, что первые два способа запускают скрипт в текущей оболочке, а два последних запускают подоболочку, а изменения переменных среды не распространяются вверх из подоболочек.