【发布时间】:2017-04-03 18:45:09
【问题描述】:
我有一个关于Shell out from ruby while setting an environment variable 的后续问题。我尝试通过 sudo 将环境变量提供给 shell 脚本,但没有成功。
这是示例单行脚本,“/usr/bin/wrapper.sh”。
echo $MYVAR
测试,
$ irb
> system({'MYVAR' => "42"}, "echo $MYVAR") ==> GOOD
> system({'MYVAR' => "42"}, "wrapper.sh") ==> GOOD
> system({'MYVAR' => "42"}, "sudo echo $MYVAR") ==> GOOD
> system({'MYVAR' => "42"}, "sudo wrapper.sh") ==> NOT GOOD
感谢您的帮助。
【问题讨论】:
-
我不确定是否有办法将该变量标记为
export,因此它会影响子shell。wrapper.sh没有在与sudo的直接shell 相同的进程中运行。ENV['MYVAR'] = 42在运行之前是否正确传播?
标签: ruby shell environment-variables environment