在执行期间更改环境变量值

Nie*_* B. 2 unix linux shell process environment-variables

考虑以下 Ruby 代码

sleep 10
puts "Foo is #{ENV['foo']}"
Run Code Online (Sandbox Code Playgroud)

将此文件保存到 envtest.rb

从 shell 运行:

export foo=bar
ruby envtest.rb &
export foo=baz
( ... 10 seconds later ... )
=> Foo is bar
Run Code Online (Sandbox Code Playgroud)

似乎在启动 ruby​​ 解释器时评估环境。是否可以在执行期间更新环境变量并将这些更改反映在正在运行的进程中?如果是这样,如何?

hek*_*mgl 5

您可以在运行时更改值 - 从 ruby​​ 脚本内部 - 使用:

ENV['VARIABLE_NAME'] = 'value'
Run Code Online (Sandbox Code Playgroud)

进程启动后,无法从进程外部更改环境值。这是设计使然,因为环境将在进程启动时传递。


归档时间:

查看次数:

1952 次

最近记录:

12 年,6 月 前