在Ansible中,我有一个这样的数组:
tab:
- 'val1'
- 'val2'
我想执行一个远程脚本,如下所示:
- name: launch Script
script: "scripts/script.ps1 -tab {{ tab }}"
但是json格式不太好识别([uval1 uval2]
)。将其转换为PowerShell格式:
$new_tab = $tab -replace '"','' -replace ']','' -replace '\[','' -split ","
有更好的解决方案吗?
2条答案
按热度按时间qgelzfjb1#
建议使用
join()
然后它会创建一个字符串,像这样:val1、val2
zaq34kh62#
补充4c74356b41's useful answer:
如果必须保留列表元素的引号,可以使用以下逻辑:
这将为每个元素添加双引号,并且PowerShell将能够评估每个字符串(例如。g.扩展变量等。(read more))。如果你想用单引号括起你的元素,你可以这样做:
请注意,
quote
过滤器在这种情况下没有用,因为它是为shell使用而设计的,不会对每个字符串都引用。