d3p*_*3pd 1 variables bash xpath xmllint
我想在程序 xmllint 的 XPath 中使用 Bash 变量。
以下工作代码说明了我想要实现的总体目标:
functionInformationTagContent="$(echo "${functionInformation}"\
| xmllint --xpath '/functionInformation/description/text()' -\
| xargs -i echo -n "{}")"
Run Code Online (Sandbox Code Playgroud)
以下非工作代码说明了我想要实现的具体目标:
functionInformationTag="${1}"
functionInformationTagContent="$(echo "${functionInformation}"\
| xmllint --xpath '/functionInformation/<clever code>"${functionInformationTag}"<clever code>/text()' -\
| xargs -i echo -n "{}")"
Run Code Online (Sandbox Code Playgroud)
您可以看到,出于泛化目的,我希望能够在 XPath 参数中使用 Bash 变量。你知道我怎样才能实现这一目标吗?你能指出我正确的方向吗?
感谢一百万您的帮助!
你的第二条评论非常接近正确。
回想一下,当最外面的引号是单引号时,变量永远不会扩展。您应该能够在单引号和双引号之间来回“切换”,只要它们彼此“接触”以将字符串全部作为一个参数即可。尝试 :
xmllint --xpath '/functionInformation/<clever code>'"${functionInformationTag}"'<clever code>/text()' -\
#--------------------------------------------------^^-------------------------^^----
Run Code Online (Sandbox Code Playgroud)
IHTH