2016-12-19 3 views
0

私は実行されたスクリプトへの絶対パスを取得したいと思います。 パスは/use/local/lib/debugger.shです。 そして、別のフォルダから$ PATH =/use/local/libを通して呼び出されます。 サンプルスクリプトを検索したところ、次のスクリプトが見つかりました。

私は絶対パス/ use/local/libを得ることができると予想しました。しかし、結果は私が期待したものではありませんでした。私は、スクリプトが呼び出されるディレクトリへの絶対パスを得ました。

スクリプトが存在する絶対パスを取得するにはどうすればよいですか?

ありがとうございました。それはあなたの$ PATHに実際にある場合は、 "これ" コマンドがそれを見つける必要があり

#!/bin/bash 

path="path = $(cd $(dirname $0) && pwd)" 
script_name="${0##*/}" 

echo "${path}/${script_name}" 

または "oneliner" スタイルでecho "path = $(cd $(dirname $0) && pwd)/${0##*/}"

答えて

1

pwd-Pオプションを追加すると、シンボリックリンク(もしあれば)、スクリプトのdirnameでは適切に解決されていることを確認します:

path=$(cd $(dirname $0) && pwd -P) 
+0

これは、ヘルプですが、それはOPが望んでいるものを解決していません – OscarAkaElvis

関連する問題