![모듈을 로드하지 않고 스크립트 도움말 작성](https://linux55.com/image/68468/%EB%AA%A8%EB%93%88%EC%9D%84%20%EB%A1%9C%EB%93%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%8F%84%EC%9B%80%EB%A7%90%20%EC%9E%91%EC%84%B1.png)
그래서 Netcdf를 빌드하고 설치하기 위한 스크립트를 작성 중인데, 스크립트를 받았을 때 일부 줄이 실행되지 않거나 건너뛰는 것 같고 그 이유를 잘 모르겠습니다. 그러나 코드를 한 줄씩 수동으로 실행하면 제대로 작동합니다. 스크립트는 다음과 같습니다.
module purge
module load gnu/5.1.0
module load mvapich2/2.1
module load hdf5/1.8.9
export SRC_DIR=/usr/local/src/netcdf/netcdf-4.3.3.1
export BUILD_DIR=$SRC_DIR/build-gnu
export INSTALL_DIR=/usr/local/netcdf/gnu/5.1/mvapich2/2.1/4.3.3.1/
mkdir -p $INSTALL_DIR
mkdir -p $BUILD_DIR
cd $BUILD_DIR
CC=mpicc CXX=mpicxx FC=mpif90 CFLAGS='-DpgiFortran -fPIC' CPPFLAGS=-I$HDF5_HOME/include \
FCFLAGS='-DpgiFortran -fPIC' LDFLAGS=-L$HDF5_HOME/lib \
../configure --prefix=$INSTALL_DIR --enable-shared --with-hdf5=$HDF5_HOME
make
make check
make install
make clean
구성 명령으로 직접 이동하는 것 같습니다. 다음을 사용하여 스크립트를 실행했습니다.
. build-netcdf-gnu-5.1 |& tee build-netcdf-gnu-5.1.log
하지만 실행하면 모듈이 로드되지 않고 빌드 디렉터리로 변경했어야 할 스크립트가 시작된 디렉터리에 여전히 남아 있습니다. 이상한 점은 코드를 한줄씩 복사해서 붙여넣으면 잘 동작한다는 점입니다. 이 스크립트가 예상대로 실행되지 않는 이유는 무엇입니까? 내가 간과하고 있는 간단한 것이 있나요? 도움을 주셔서 감사합니다.