Linux 为什么我必须运行命令而不是运行 bash 文件

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

答案1

source有效,但是为什么呢?” - 当您运行设置环境变量的脚本时,默认情况下会启动一个子 shell。新设置的变量不一定会返回到您的顶级 shell。当您source编写脚本时,您是在告诉 shell 在当前 shell 中运行命令,而不是启动子 shell,因此新设置的变量将位于您期望它们所在的 shell 中。

相关内容