Ruby脚本可以告诉它所在的目录吗?
受到“ 从内部获取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
ENV [“PWD”]对我来说似乎是最简单的方式。 我不知道与操作系统无关的方式。