2012-03-09 2 views
1

私はアプリケーションのためのこのディレクトリ構造を持っています:bin、config、lib。計算されたパスが絶対形式である別のパスを基準にしたディレクトリのパスを計算する

binディレクトリに私はbashスクリプトを持っています。 binディレクトリにあるスクリプトファイルの場所に基づいて、configディレクトリとlibディレクトリのbashスクリプトに変数を設定できるようにしたい。

このBin_dir = "$(CDの-P "$(dirnameは "$ {BASH_SOURCE [0]}")" & & PWD)"

:私はやっによって実行されるスクリプトのディレクトリ名を取得することができます私の質問です:どのようにBIN_DIRに基づいてconfigとlibディレクトリのdiectoryパスを計算することができますか?

ありがとうございました。

答えて

3

あなたはおそらくこれを使用することができます:

cd `dirname $0`/.. 
BASE_DIR=`pwd` 
cd - 
BIN_DIR=${BASE_DIR}/bin 
CONFIG_DIR=${BASE_DIR}/config 
LIB_DIR=${BASE_DIR}/lib 
+0

これを絶対パスを与えません。それは/../config – John

+0

Hmのようなものを与えますが、あなたの質問では絶対パスを探しているとは言及していませんでした。 – vanje

+0

あなたは実際にタイトルの「別のパスに相対的」と言っています。どうか明らかにしてください。 –

2

あなたはBIN_DIRを持っている場合は、あなたとあなたのプロジェクトディレクトリの絶対パスを取得する:

PROJECT_DIR=`readlink -f $BIN_DIR/..` 

、その後

CONFIG_DIR=$PROJECT_DIR/config 
LIB_DIR=$PROJECT_DIR/lib 
+0

+1:readlinkをうまく使います。 –

関連する問題