我想将以下行添加到〜/ .bashrc:
export PATH:/var/lib/gems/1.9.1/bin:$PATH
但前提是它不存在。
我如何检查该线是否已存在?
答案 0 :(得分:2)
这可能是吗?
File.open(".bashrc").each_line do |line|
if (line == "foo")
return true
end
end
return false
答案 1 :(得分:2)
path_seen = false
File.open( ~/.bashrc ) do |f|
f.grep( /export PATH:\/var\/lib\/gems\/1.9.1\/bin:\$PATHg/ ) do |line|
path_seen = true
end
end
答案 2 :(得分:1)
由于当时的回车供不应求......
return File.open('.bashrc').lines.any? { |line| line.chomp == 'foo'}
答案 3 :(得分:0)
你的问题可能意味着:
export PATH=/var/lib/gems/1.9.1/bin:$PATH
(注意第一个':'应该是'=')
此外,在创建具有多个'/'的正则表达式时(根据@ ennuikiller的解决方案),您可能希望使用%r {}文字构造函数而不是//。例如:
f.grep( /export PATH:\/var\/lib\/gems\/1.9.1\/bin:\$PATHg/ ) do |line|
变得更容易阅读(稍作修正 - 删除尾随'g'):
f.grep( %r{export PATH:/var/lib/gems/1.9.1/bin:\$PATH} ) do |line|
答案 4 :(得分:0)
我刚刚遇到这个问题,想要检查特定的Rails路由是否已经存在:
route = "mount Blorgh::Engine"
File.open('config/routes.rb').each_line.any? {|line| line[/#{route}/] }