获取shell脚本所在路径而非执行路径

需求

有时候需要获取shell脚本文件所在的路径
直接pwd会获取当前执行路径

实现

使用dirname获取

#!/bin/bash
echo "Script executed from: ${PWD}"

BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"

参考

Shell script current directory? - Stack Overflow