可以做这样的事吗?
File.open('/etc/logo', 'r') do |f|
f.each_line{ |line| puts line }
end
但我不希望将行的内容打印为文本,而是将其视为puts
命令的参数。为了使自己清楚,这是示例/ etc / logo:
"\e[34m" + 'BLUE COLOR' + "\e[31m" + 'RED COLOR'
我想将ASCII徽标与我的代码分开。谢谢你的想法。
答案 0 :(得分:1)
File.open('/etc/logo', 'r') do |f|
f.each_line{ |line| eval "puts #{line}" }
end
不要让任何人编辑该文件。
如果您想要更安全的方法,请尝试以下方法:
File.open('/etc/logo', 'r') do |f|
f.each_line{ |line|
puts line.gsub(/\\e/, "\e")
}
end
为此,您应该使用如下文件:
\e[34mBLUE COLOR\e[31mRED COLOR
这只是将转义的\ e替换为真实角色。