2011-10-25 8 views
2

コマンドラインが嫌いな人のために、linuxにいくつかの簡単なインストール手順がありますが、場所(ルートなど)からスクリプトを実行しています。だから私は念頭に置いていますが、ファイルがどこにあるかを参照する方法を見つけようとしています。別の場所からbashスクリプトを実行していますが、スクリプトのある場所を参照しています

例。 私が使用して自分自身を参照するフォルダ/ルート/サーバ/スクリプトでInstall.shというスクリプトを/持って次

SCRIPTSDIR=`pwd` 

しかし、私はSHをすることによってルートからこのスクリプトを実行している人たちの問題になってきましたサーバー/スクリプト/ Install.sh

私はSCRIPTS =ファイルのある場所ではなく、どこから実行されているかを参照することができますか?

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

編集:すべての回答が良かった、私は絶対的な道が必要だった。あなたのスクリプトが相対パスで呼び出された場合は、

dirname $0 

とディレクトリを取得することができます

答えて

5

、dirnameにも相対パスを返します。

SCRIPTDIR=$(dirname $0) 

をあなたは絶対パスが必要な場合は、試してみてください:

あなたが追加することができます
cd $(dirname $0) 
SCRIPTDIR=$(pwd) 
cd - 
1

を行うことができます次のようなもの:

fullscriptpath=$(dirname $0) 
1

あなたには、いくつかの理由のためにそれを解決したい場合は、あなたが使用することができます

readlink -f `dirname $0` 
+1

hawow、reflのスタックオーバーフローテストexes:それは最高です:)(お互いの数秒以内に3つのほとんど同じ回答)。 – mgalgs

関連する問題