揮発性のメモ2

知識をメモ書きしておく

bashで、今実行しているスクリプトのディレクトリを取得する

シンプルな書き方
SH_DIR=$(realpath $(dirname $0))

引数 $0 にはスクリプト名が入っているので、ディレクトリを切り出す
相対パスで実行しているときは 相対パス名が入るので realpath で正規化する

「正しい」書き方
SH_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"

まず $0 は sourceコマンドなどで呼んでるときには使えないので、${BASH_SOURCE[0]} を利用するのが正しい。
それと、空文字列になる可能性が無いわけではないので ひとつひとつ きちんと "" で括った方がいい

realpathコマンドが無いとき
SH_DIR=$(cd $(dirname $0) && pwd -P)

移動するやり方。ださい。