ここにbashスクリプトがあります。
$GOPATH/
src/
build.sh
build.shには次のものがあります。
export GOPATH="$(cd $(dirname "$BASH_SOURCE") && pwd)"
build.shのインクルードディレクトリを取得するより短い方法はありますか?
答え1
スクリプトを含むディレクトリを取得するには、次のコマンドを使用します。
readlink -f $(dirname $0)
Bashのマニュアルページに記載されているように$0
ファイル名を設定します。
readlink -f
このディレクトリの絶対パスを取得します。
答え2
BASH_SOURCEのアイデアを展開して、絶対パスが含まれていることを確認してください。その場合は直接使用し、そうでない場合は前にPWDを追加してください。その後、続くスラッシュとその後のすべてのエントリを削除し、含まれているディレクトリのみを残します。
case ${BASH_SOURCE[0]} in
( /* )
p=${BASH_SOURCE[0]}
;;
( * )
p=${PWD}/${BASH_SOURCE[0]}
;;
esac
p=${p%/*}
printf "%s\n" "$p"