Dalam skrip saya mendapatkan $0
jalur 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.
dirname
util berguna di sini.
BASH_SOURCE
lebih baik daripada $0
, seperti $0
memberikan perintah yang diketik pengguna, yang mungkin bukan skrip yang sedang dieksekusi.
readlink -f $0
untuk mendapatkan jalur kanonik.