На каждый скрипт bash обычно запускает новый процесс, в котором эти переменные и задаются, а потом исчезают, когда процесс завершается.
Если они заданы с export, то будут видны и в родительском процессе - это, ИМХО, моветон, да и происходит это не всегда, у меня как-то, было дело, не получалось задать переменные среды.
В рабочий скрипт в начале надо поставить вызов скриптов с заданием переменных на выполнение в текущем процессе.
Делается это так: точка (.), пробел, потом имя скрипта, возможно, с путем:
кусок run.sh:
. ./script1.sh
. ./script2.sh
и т.п.
Да! Из инициализирующих скриптов (script1.sh и прочие) вызов run.sh убрать и запускать сразу его.