Ruby on rails Ruby中的临时环境变量
请尽量容忍我,因为我对这方面还比较陌生,没有太多的编码经验 我正在尝试使用ruby脚本向我的PATH变量添加一个位置。到目前为止,我只有Ruby on rails Ruby中的临时环境变量,ruby-on-rails,ruby,environment-variables,Ruby On Rails,Ruby,Environment Variables,请尽量容忍我,因为我对这方面还比较陌生,没有太多的编码经验 我正在尝试使用ruby脚本向我的PATH变量添加一个位置。到目前为止,我只有 path = ENV['PATH'].to_s ENV['PATH'] = path + ";" + location print ENV['PATH'] 问题是,文件似乎被添加到路径中并与之一起打印,但当我检查路径变量时,新位置不在那里 另外,当我运行一个单独的脚本时,其中只有一行: print ENV['PATH'] 新位置也不在那里 我的问题是,
path = ENV['PATH'].to_s
ENV['PATH'] = path + ";" + location
print ENV['PATH']
问题是,文件似乎被添加到路径中并与之一起打印,但当我检查路径变量时,新位置不在那里
另外,当我运行一个单独的脚本时,其中只有一行:
print ENV['PATH']
新位置也不在那里
我的问题是,是否有一种方法可以使新路径“保存”,而不是在脚本完成后恢复到旧路径?如果我没有弄错,您就不能真正编辑环境变量 加载脚本时,ruby加载所有当前已知的环境变量,并将值添加到
ENV
在编辑它时,它将仅为当前执行临时更改
如果您想更改它并希望它保持不变,则必须使用system
system("export PATH=$PATH:YOUR_PATH")
与您在CLI中所做的相同,您最好生成一个shell命令,在Ruby脚本外部和正在运行的shell内部进行计算 像这样的方法应该会奏效:
放置“导出路径=#{ENV['PATH']};#{location}”
那么,在壳里你做什么
eval$(ruby_脚本)
但是,由于您似乎希望在Windows中运行此操作,您可能希望使用命令替换,在这种情况下,您可以直接输出位置:
放置位置
在Windows外壳中:
设置路径=%PATH%;(ruby_脚本)
冒号“:”是Unix中路径的字段分隔符,而不是分号“;”。今天,当我将分号改为冒号时,您的示例对我来说效果很好。好吧,我想这是有道理的,windows中是否有类似的函数?system()
也会临时更改它,事实上,更糟的是,它只会在system()
shell中更改它。