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작동하지만 왜?" - 환경 변수를 설정하는 스크립트를 실행하면 기본적으로 하위 쉘이 시작됩니다. 새로 설정된 변수가 반드시 최상위 쉘로 반환되는 것은 아닙니다. 스크립트를 작성할 때 source하위 쉘을 시작하는 대신 현재 쉘에서 명령을 실행하도록 쉘에 지시하므로 새로 설정된 변수는 예상한 쉘에 있게 됩니다.

관련 정보