2016-11-25 7 views
2

の親ディレクトリを取得します:exec.shスクリプトで私はここにシェルスクリプトを持っているシェルスクリプトのディレクトリ

/node_modules/.bin/exec.sh 

を、私はスクリプトが含まれていることがディレクトリの親ディレクトリのパスを取得したい(ありませんpwd/cwd!)。私はそうのようなディレクトリを取得することができます。

`dirname $0` 

得れる:

/node_modules/.bin 

が、私は一つのディレクトリでより高い得るために探しています、私はちょうど

/node_modules 

を取得したいです私は答えを探すのに苦労している、私の推測は:

`dirname $1` 

しかし、それはまったく正しいかどうかはわかりません。誰がこれを行う方法とそれがどのように動作するのか説明を与えることができますか?

+0

いいえ、すべてではない、これはCWD/PWDとは何の関係もありません –

+0

@AlexanderMillsそれにはすべてが関係しています。ターゲットの親ディレクトリを取得します。次に、*その*ディレクトリの親ディレクトリを取得します。 – Ouroborus

+0

いいえ、それは現在の作業ディレクトリや現在の作業ディレクトリではなく、スクリプトを含むディレクトリと関係がありますが、それらは非常に異なる可能性があります...あなたが../../exec.shのようなスクリプトを実行すると想像してください。おかげで –

答えて

7

dirnameを2回(入れ子にして)実行します。

~$ dirname $PWD 
/home 
~$ dirname `dirname $PWD` 
/
~$ 
+0

これは近いですが、$(dirname \ 'dirname $ 0 \')だと思います –

1

私は答えは周りに二重引用符「$ 0」を忘れないでください

$(dirname $(dirname "$0")) 

であると考えてい

関連する問題