0

我想在程序 xmllint 的 XPath 中使用 Bash 变量。

以下工作代码说明了我想要实现的总体目标:

    functionInformationTagContent="$(echo "${functionInformation}"\
                | xmllint --xpath '/functionInformation/description/text()' -\
                | xargs -i echo -n "{}")"

以下非工作代码说明了我想要实现的具体目标:

    functionInformationTag="${1}"
    functionInformationTagContent="$(echo "${functionInformation}"\
                | xmllint --xpath '/functionInformation/<clever code>"${functionInformationTag}"<clever code>/text()' -\
                | xargs -i echo -n "{}")"

您可以看到我希望能够在 XPath 参数中使用 Bash 变量来进行泛化。你知道我怎么能做到这一点吗?你能指出我正确的方向吗?

感谢一百万您的帮助!

4

1 回答 1

4

您的第二条评论非常接近正确。

回想一下,当最外层的引号是单引号时,变量永远不会被扩展。您应该能够在单引号和 dbl 引号之间来回“切换”,只要它们相互“接触”以将字符串全部保留为一个参数。尝试 :

xmllint --xpath '/functionInformation/<clever code>'"${functionInformationTag}"'<clever code>/text()' -\
#--------------------------------------------------^^-------------------------^^----

IHTH

于 2013-02-08T19:30:35.353 回答