Dalam skrip saya mendapatkan $0jalur relatif yang memungkinkan untuk itu. Untuk mengubahnya menjadi absolut, saya telah menemukan solusi ini yang tidak saya mengerti:
abspath=$(cd ${0%/*} && echo $PWD/${0##*/})
Masalah saya adalah keajaiban di dalam ${0%/*}dan ${0##*/}. Sepertinya mantan mengekstrak dirname dan yang terakhir mengekstrak nama file, saya hanya tidak mengerti caranya.
dirnameutil berguna di sini.
BASH_SOURCElebih baik daripada $0, seperti $0memberikan perintah yang diketik pengguna, yang mungkin bukan skrip yang sedang dieksekusi.
readlink -f $0untuk mendapatkan jalur kanonik.