我想在下面的语句中传递变量$sname
的值
sname="xyz"
snames_arry=$(xmllint --xpath
'(//source[@name="$sname"]/files/file_names/text())' source.xml)
,但未采用$source_name
的值。
错误是XPath集为空,因为它无法解析$source_name
的值。
硬编码$sname
的值是可行的,但我想使其动态。
有人可以帮我解决上述问题吗?
感谢与问候
答案 0 :(得分:0)
shell不会对单引号中的字符串执行变量替换。考虑使用双引号
sname="xyz"
snames_arry=$(xmllint --xpath "(//source[@name="$sname"]/files/file_names/text())" source.xml)
答案 1 :(得分:0)
在单引号之间没有替代。
单引号可以像这样停止和启动
# examples
echo 'Hel'lo 'world'
echo '($LOGIN, $USER)=("'$LOGIN'", "'$USER'").'
在您的情况下:
snames_arry=$(xmllint --xpath
'(//source[@name="'$sname'"]/files/file_names/text())' source.xml)