「 Bashスクリプトのソースディレクトリを内部から取得する に触発されて、Rubyこれを行う方法は何ですか?
File.dirname(__FILE__)
は、実行中のスクリプトに対する相対パスを提供します。 File.expand_path(File.dirname(__FILE__))
は絶対パスを提供します。
__dir__
Ruby 2.0、__dir__
は、これを取得する最も簡単な方法です。それ
このメソッドが呼び出されるファイルのディレクトリの正規化された絶対パスを返します。
__dir__
のドキュメント、および「 __ FILE__が大文字で__dir__が小文字なのはなぜですか? "。
___dir__
_ を使用します
File.dirname(__FILE__)
は、スクリプトが格納されているディレクトリを取得する適切な方法ではありません。
作業ディレクトリとスクリプトファイルのあるディレクトリは同じですが、変更される場合があります。
例えば:
_Dir.chdir('..') do
puts __dir__
puts File.expand_path(File.dirname(__FILE__))
end
_
_/Desktop/tmp
_に格納されているスクリプトファイルの場合、実行すると出力が得られます
_/home/mateusz/Desktop/tmp
/home/mateusz/Desktop
_