尽量忍受我,因为我对此很陌生并且没有太多的编码经验。
我试图使用ruby脚本向PATH变量添加位置。到目前为止我只是
path = ENV['PATH'].to_s
ENV['PATH'] = path + ";" + location
print ENV['PATH']
问题是该文件似乎被添加到PATH并随之打印,但当我去检查我的路径变量时,新位置不存在。
另外,当我运行一个单独的脚本是一行时:
print ENV['PATH']
新地点也不存在。
我的问题是有没有办法让新的PATH“保存”而不是在脚本完成后恢复到旧的PATH?
答案 0 :(得分:0)
如果我没弄错,你无法真正编辑环境变量。
加载脚本时,ruby会加载所有当前已知的环境变量,并将值添加到ENV
。
编辑时,只会暂时更改当前执行。
如果您想要更改它并希望它保持不变,则必须例如使用system
system("export PATH=$PATH:YOUR_PATH")
与在CLI中执行的操作相同
答案 1 :(得分:0)
您能做的最好的事情是生成一个shell命令,以在Ruby脚本之外以及正在运行的shell内进行评估。
类似的事情应该起作用:
puts "export PATH=#{ENV['PATH']};#{location}"
然后,在外壳中执行
eval $(ruby_script)
但是,由于您似乎想在Windows中运行此命令,因此您可能希望使用命令替换,在这种情况下,您可以直接输出位置:
puts location
在Windows shell中:
set PATH=%PATH%;(ruby_script)
答案 2 :(得分:0)
冒号“:”是PATH的字段分隔符,而不是分号“;”在Unix中。今天,当我将分号更改为冒号时,您的示例对我来说效果很好。