Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何删除“;“隐藏的”;在Ruby中读取一行文本时使用的字符?_Ruby_Puppet - Fatal编程技术网

我如何删除“;“隐藏的”;在Ruby中读取一行文本时使用的字符?

我如何删除“;“隐藏的”;在Ruby中读取一行文本时使用的字符?,ruby,puppet,Ruby,Puppet,我在Puppet中使用自定义Ruby函数从文件中读取字符串。我不是将读取的任何版本与已知版本列表进行比较,以确定我应该为该特定服务器使用哪个配置文件。问题是,当我将已读版本与已知版本列表进行比较时,它们都不匹配 我把变量打印到屏幕上,看起来很好。然后我在开头和结尾加了一个“-”,这一次,打印了以下内容 -2.2#012- 有人知道这是什么以及如何移除吗 这是我的流程 处理应用程序安装的脚本 sudo echo "2.2" > /opt/version 我的ruby函数 if FileT

我在Puppet中使用自定义Ruby函数从文件中读取字符串。我不是将读取的任何版本与已知版本列表进行比较,以确定我应该为该特定服务器使用哪个配置文件。问题是,当我将已读版本与已知版本列表进行比较时,它们都不匹配

我把变量打印到屏幕上,看起来很好。然后我在开头和结尾加了一个“-”,这一次,打印了以下内容

-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"