본문 바로가기
misc./Software

Sourcing vs. Executing a file in bash

by medical physicist 2020. 3. 22.

bash shell에서 파일을 실행할 때 별 생각없이 두 가지 방법들('source file.sh' 그리고 './file.sh')을 섞어서 사용해 왔었는데, TOPAS 3.2 patch02를 새로 설치하고 테스트로 rundemos.csh를 실행하면서 별 생각없이 'chmod u+x rundemos.csh'로 실행 가능 파일로 만들어주고 './rundemos.csh'로 실행을 하려고 하니 자꾸 library를 못찾겠다는 오류가 발생하였다. Library path 설정도 정상적으로 잘 되어있는데... 이상하다 싶어서 'source rundemos.csh' 해보니 아무런 문제없이 마지막 한 줄 까지 잘 실행이 되는 것이다.

 'source file.sh' 또는 '. ./file.sh'의 경우에는 현재 실행 중인 bash shell 안에서 실행이 되는 것으로, 열려있는 bash shell의 환경 설정이 그대로 적용이 되지만, './file.sh'의 경우에는 독립적인 실행이 되면서 자체적인 환경 설정을 적용하므로, 현재 bash shell에서 설정한 환경 변수 값은 적용이 되지 않았던 것이다.

 

한줄 요약: 기본이 중요하다. 항상. 

 

dyld: Library not loaded

 

'misc. > Software' 카테고리의 다른 글

Windows PowerShell에서 bash 사용하기  (0) 2021.08.06
TOPAS version 3.3 release  (0) 2020.03.26
binary raw file access 프로젝트 손털기  (0) 2020.03.20
PyQt5 UI code generator  (0) 2019.11.15
Qt Designer, where are you?  (0) 2019.10.31

댓글