如何在木偶上使用参数化正则表达式(例如/${USER}/)进行测试? [英] how to test with parameterized regex (e.g. /${user}/) on puppet?
本文介绍了如何在木偶上使用参数化正则表达式(例如/${USER}/)进行测试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要获取用户的主目录。我决定通过解析一个::getent_passwd字符串(这是一个定制事实构建为
连接/etc/passwd
的内容)
并在regex的帮助下提取相关信息。
当我用固定字符串("adam
")测试::getent
时,提取工作:
if "$::getent_passwd" =~ /|adam:x:[^:]+:[^:]+:[^:]*:([^:]*):/ {
$user_home = $1
notify{"This works":}
}
但当我使用$user
变量构建正则表达式时,没有匹配的内容:
if "$::getent_passwd" =~ /|${user}:x:[^:]+:[^:]+:[^:]*:([^:]*):/ {
$user_home = $1
} else {
fail{"this fails":}
}
客户端和服务器端使用Ubuntu 14.04 64位上的Pupte3.7.3。Puppetserver使用puppetdb。
推荐答案
五年后回复,但现在有了一个简单的方法。 对于其他登陆这里的人..。尝试regexp constructor从字符串构建regexp:
if("abcd" =~ Regexp("${myvar}") { (...) }
这篇关于如何在木偶上使用参数化正则表达式(例如/${USER}/)进行测试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文