BASH_SOURCE[0] 等價于 BASH_SOURCE ,取得當前執行的 shell 文件所在的路徑及文件名
dirname 去除文件名中的非目錄部分,僅顯示與目錄有關的部分
如 /home/abc/test.sh 內容如下:
#!/bin/bash
echo "${BASH_SOURCE[0]}"
echo "${BASH_SOURCE}"
echo "$(dirname "${BASH_SOURCE[0]}")"
echo "$(cd "${ dirname BASH_SOURCE[0]}" && pwd)"
若在當前目錄 /home 下執行 source ./abc/test.sh ,輸出為:
./abc/test.sh
./abc/test.sh
./abc/
/home/abc