c or linux
dirname: illegal option -- b 에러
'김용환'
2019. 1. 21. 14:40
스크립트에서 현대 디렉토리를 지정하기 위해 다음과 같은 스크립트를 많이 사용한다.
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)