我如何删除“;“隐藏的”;在Ruby中读取一行文本时使用的字符?
我在Puppet中使用自定义Ruby函数从文件中读取字符串。我不是将读取的任何版本与已知版本列表进行比较,以确定我应该为该特定服务器使用哪个配置文件。问题是,当我将已读版本与已知版本列表进行比较时,它们都不匹配 我把变量打印到屏幕上,看起来很好。然后我在开头和结尾加了一个“-”,这一次,打印了以下内容我如何删除“;“隐藏的”;在Ruby中读取一行文本时使用的字符?,ruby,puppet,Ruby,Puppet,我在Puppet中使用自定义Ruby函数从文件中读取字符串。我不是将读取的任何版本与已知版本列表进行比较,以确定我应该为该特定服务器使用哪个配置文件。问题是,当我将已读版本与已知版本列表进行比较时,它们都不匹配 我把变量打印到屏幕上,看起来很好。然后我在开头和结尾加了一个“-”,这一次,打印了以下内容 -2.2#012- 有人知道这是什么以及如何移除吗 这是我的流程 处理应用程序安装的脚本 sudo echo "2.2" > /opt/version 我的ruby函数 if FileT
-2.2#012-
有人知道这是什么以及如何移除吗
这是我的流程
处理应用程序安装的脚本
sudo echo "2.2" > /opt/version
我的ruby函数
if FileTest.exists?("/opt/version")
Facter.add("app_version") do
setcode do
version = File.open('/opt/version', &:readline)
version
end
end
end
我的木偶清单
if versioncmp( $app_version, '2.2') == 0 {
notice("===> Installing 2.2 Configs")
} elsif versioncmp ($app_version, '2.3') == 0 {
notice("===> Installing 2.3 Configs")
} else {
notice("===> No version match. Continuing on.")
}
}
File.readline
包括行终止符(在您的情况下为“\n”)chomp
将消除线路终止:
version = File.open('/opt/version', &:readline).chomp
调试时,如果您想查看变量中的实际内容,请使用p
而不是put
p
将转义不可打印的字符,以便您可以看到它们:
puts "2.2\n" # => 2.2
#
p "2.2\n" # => "2.2\n"