Quantcast
Channel: 揮発性のメモ2
Viewing all articles
Browse latest Browse all 110

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

$
0
0

シンプルな書き方
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)

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


Viewing all articles
Browse latest Browse all 110

Trending Articles