【问题标题】:Ruby equivalent of syscall.Exec in golangRuby 相当于 golang 中的 syscall.Exec
【发布时间】:2021-11-27 03:32:45
【问题描述】:

我想用 ruby​​ 以编程方式设置环境变量。在 Golang 中我们有

syscall.Exec(os.Getenv(SHELL), []string{os.Getenv(SHELL)}, updated)

这将打开一个新的默认 shell,其中包含更新的变量。因此,我们执行 go 程序的终端将为会话保留这些变量。

我是 ruby​​ 新手,无法在那里找到等价物。请帮帮我。

【问题讨论】:

    标签: ruby go environment-variables


    【解决方案1】:

    要获取/设置环境变量,您可以使用ENV 哈希,然后进行系统调用,您可以在其中看到标准输出(而不是`,它会将输出作为字符串返回给您),您可以致电system
    默认的 shell 应该在 ENV['SHELL'] 中可用,所以你需要的应该是这样的:

    ENV['FOO'] = '123' # FOO will last for the entire ruby session
    system({'BAR' => '456'}, ENV['SHELL']) # BAR will last until system call has finished
    system(ENV['SHELL']) # Here, only FOO will be available, not BAR
    

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 2022-12-19
      • 1970-01-01
      • 2020-03-24
      • 2016-08-07
      相关资源
      最近更新 更多