【问题标题】:How can I reliably discover the full path of the Ruby executable?如何可靠地发现 Ruby 可执行文件的完整路径?
【发布时间】:2017-10-21 06:42:25
【问题描述】:

我想写一个脚本,打包成一个gem,它会修改它的参数,然后exec一个新的ruby进程,修改后的参数。换句话说,类似于修改其参数然后执行exec $SHELL $* 的shell 脚本。为了做到这一点,我需要一种强大的方法来发现正在执行当前脚本的 ruby​​ 可执行文件的路径。我还需要获取传递给当前进程的完整参数——Ruby 参数和脚本参数。

【问题讨论】:

  • 不要使用内联答案更新您的问题,只需为您自己的问题添加答案即可。这样人们就可以对您的答案投赞成票。
  • 注意你可能还需要require 'rbconfig'

标签: ruby scripting


【解决方案1】:

Rake 源代码是这样的:

  RUBY = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']).
    sub(/.*\s.*/m, '"\&"')

【讨论】:

  • 配置已弃用。使用 RbConfig。
  • 自 Ruby 2.2 起,Config 已被删除。现在必须是:``` RUBY = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])。 sub(/.*\s.*/m, '"\&"') ```
【解决方案2】:

如果你想在 linux 上检查:读取文件:

  • /proc/PID/exe
  • /proc/PID/cmdline

其他有用的信息可以在 /proc/PID 目录中找到

【讨论】:

    【解决方案3】:

    对于脚本参数,当然使用ARGV

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多