如何在木偶上使用参数化正则表达式(例如/${USER}/)进行测试? [英] how to test with parameterized regex (e.g. /${user}/) on puppet?

查看:13
本文介绍了如何在木偶上使用参数化正则表达式(例如/${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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆