GrADS 인터프리터는 어떤 명령줄을 넣고 엔터를 치는 순간에 내부 명령/함수로 존재하는지 아니면 입력된 것과 동일한 이름을 가진 스크립트 파일이 존재하는지 찾습니다. 이 글에서는 스크립트 파일들을 넣어둔 디렉토리를 정의하는 방법과 관련해서 간단히 정리해보려고 합니다. 사용자가 스크립트 형태로 작성해둔 파일은 GrADS 인터프리터에서 명령어(*.gs)나 함수(*.gsf)로 사용할 수 있는데요, 대부분 사용자들은 GASCRP 쉘 환경변수를 설정해서 정의하고 있을겁니다. 스크립트 파일이 /opt/grads/script에 있고 bash를 사용하고 있다면 다음과 같이 정의하겠죠.

export GASCRP=/opt/grads/script

그리고 시스템 관리자가 미리 넣어둔 스크립트들 외에 본인이 파일을 더 추가하고 싶을 때, 많은 분들이 기존 스크립트를 전부 복사해서 본인 홈디렉토리에 넣고 환경변수를 다시 설정한 다음 본인이 원하는 파일을 추가해서 사용하시더라고요. 이런 식으로요.

cp /opt/grads/script/*.* /home/user/opt/grads/script/
export GASCRP=/home/user/opt/grads/script
cp new_thing.gs /home/user/opt/grads/script/

하지만 이렇게 하다보면 불편한 점이 있습니다. 시스템관리자가 스크립트 파일을 업데이트하는 경우 사용자의 환경에서는 반영되지 않는 문제가 있습니다. 또한 복사하는 과정에서 스크립트 파일 이름이 동일한 경우에는 덮어써지거나 복사가 안되서 어느 한 쪽이 동작되지 않는 문제도 있습니다. 그리고 한 디렉토리에 수 십개 이상 스크립트 파일이 쌓이게 되면 관리하기 불편하죠. 그래서 여러개의 스크립트 디렉토리를 설정하는 방법을 알아두면 좋습니다. (쉘에서 PATH 설정하는 형식과는 조금 다릅니다.) 다음과 같이 환경변수를 설정하면 됩니다.

export GASCRP=“/opt/grads/script /home/user/opt/grads/script”

이렇게 하면 동시에 여러 스크립트 디렉토리를 설정할 수 있습니다. 인터프리터에서 스크립트 파일을 찾는 순서는 빈칸으로 구분된 디렉토리 리스트의 맨 앞부터이기 때문에 위의 예시에서 동일한 이름의 스크립트 파일이 두 디렉토리 모두에 들어있다면 /opt/grads/script에 있는 것을 불러오개 됩니다. 이것은 읽기 권한만 있고 쓰기 권한이 없는 스크립트중 일부만 개인적으로 수정해서 사용하고 싶을 때도 이용할 수 있겠죠.

cp /opt/grads/script/something.gs /home/user/opt/grads/script/
vi /home/user/opt/grads/script/something.gs
export GASCRP=“/home/user/opt/grads/script /opt/grads/script”

이렇게 하면 내가 변경한 something.gs 파일을 우선 불러오게 됩니다. 필요 없어지거나 다시 원래 스크립트를 사용하고 싶을 때는 수정한 파일만 삭제하면 됩니다.

더 자세한 정보는 이 링크에서 보실 수 있습니다.

+ Recent posts