Linux, почему мне нужно запускать команды вместо запуска файла bash

Чтобы запустить исполняемый файл, мне нужно сначала запустить все команды в нижнем файле bash, поэтому я просто поместил эти команды в файл bash и сначала запустил файл bash, но запуск bash-файла не работает, я должны запускать 4 команды по одному в терминале, а затем запускать исполняемый файл in the same terminal , почему я должен это делать, почему запуск файла bash не выполняется так же, как запуск команд один за другим:

 #!/bin/bash export LD_LIBRARY_PATH=/repo/$USER/ncmain/out/rcpi/ITC_CXA11466/x86/lib export ITC_RUNDIR_PATH=/local/scratch/$USER/itc/ export ITC_INSTANCE_NAME=itc_$USER /local/scratch/ehhozzo/RCS_ROOT/software/itcworld 

« source работает, но почему?» – Когда вы запускаете скрипт, который устанавливает переменные среды, вы запускаете подоболочку по умолчанию. Новые заданные переменные необязательно возвращаются в оболочку верхнего уровня. Когда вы запускаете скрипт, вы сообщаете своей оболочке для запуска команд в вашей текущей оболочке, а не для запуска подоболочки, поэтому вновь заданные переменные будут находиться в оболочке, в которой вы ожидаете, что они будут.