スクリプトで$0
は、可能な相対パスを取得します。それを絶対に変換するために、私は理解できないこの解決策を見つけました:
abspath=$(cd ${0%/*} && echo $PWD/${0##*/})
私の問題は、内部の魔法である${0%/*}
と${0##*/}
。前者はdirnameを抽出し、後者はファイル名を抽出するように見えますが、方法はわかりません。
dirname
utilのは、ここに便利です。
BASH_SOURCE
よりも優れている$0
、として$0
、現在実行中のスクリプトではないかもしれませんコマンドで入力したユーザーのは、提供します。
readlink -f $0
して正規パスを取得できます。