스크립트에서 현대 디렉토리를 지정하기 위해 다음과 같은 스크립트를 많이 사용한다. 


my_root=$(cd $(dirname $(readlink $0 || echo $0))/../;/bin/pwd)



그런데 맥에서 이런 에러가 발생했다.


dirname: illegal option -- b




bash에서 $0이 스크립트 경로를 알려주는 것이라 알고 있긴 하지만... 사실 보장하지 않는다.

완벽히 보장하는 bash script를 개발하려면 BASH_SOURCE를 사용하길 바란다.



SCRIPT_PATH=${BASH_SOURCE[0]}

my_root=$(cd $(dirname $(readlink ${SCRIPT_PATH} || echo ${SCRIPT_PATH}))/../;/bin/pwd)




Posted by 김용환 '김용환'

댓글을 달아 주세요