どこかで読んだ後、実行中のシェルスクリプトの絶対物理パスを取得するためにこの手法を使用しています(場所は覚えていません)。
cd $(dirname "$0") && ABSPATH=$(pwd) && cd - > /dev/null
スクリプトが絶対パスまたは相対パスから呼び出されるかどうかに関係なく、完全に機能するはずです。つまり、、、、、、別script.sh
のスクリプト内からなど./script.sh
です。../script.sh
../../../lib/script.sh
/Users/../scripts/script.sh
実際、この手法は、相対パスを絶対化するためのかなり堅実なパターンのようです。
これを行うための多くの手法が、何らかの理由で、あるシステムまたは別のシステムでは機能しない傾向があることを私は知っています。では、この手法との互換性の問題はありますか? ほとんどすべての Unix OS とシェルで動作するはずですか、それとも潜在的な問題はありますか?