我有一个命令需要运行shell脚本。shell文件位于gem根文件夹中。当我执行完整路径时,一切正常,但无法获得根路径。
从project_creator.rb运行脚本
我用来测试
system("sh /Users/user_name/folder/gem-project/lib/gem/create.sh" + param)Tried:
system("sh ../lib/gem/create.sh" + param)

发布于 2019-07-01 15:17:11
使用__dir__获取Ruby文件的目录。来自文档
返回调用此方法的文件目录的规范化绝对路径。它意味着路径中的符号链接被解析。如果
__FILE__为零,则返回零。返回值等于File.dirname(File.realpath(__FILE__))
因此,在您的示例中,您可能会执行如下操作:
script = File.join(__dir__, '..', 'create.sh')
exit_code = system("sh #{script")您还可以使用system设置cwd (当前工作目录)。
system("create.sh", chdir: __dir__)或者:
Dir.chdir(__dir__) { system('create.sh') }https://stackoverflow.com/questions/56834748
复制相似问题