【发布时间】:2017-12-22 15:30:21
【问题描述】:
我正在尝试使用 xmllint 从 xml 文件中提取 db 元素的 value 属性
我的 XPath 查询需要导航到正确的 dbtype,我希望将其存储在环境变量中
没有环境变量(硬编码),此命令有效
echo 'cat //rdbmsinfo/dbtype[@value="sqlserver"]/db/@value' | xmllint --shell "config.xml" | grep -v ">" | cut -f 2 -d "=" | tr -d \ | sed 's/"//g'
我正在尝试使用以下命令:
echo 'cat //rdbmsinfo/dbtype[@value="$ldb_source_typ"]/db/@value' | xmllint --shell "config.xml" | grep -v ">" | cut -f 2 -d "=" | tr -d \ | sed 's/"//g'
其中ldb_source_typ 是一个变量,用于从shell 参数中获取"sqlserver" 的值。但是上面的语法没有给出任何输出。
为什么这不起作用,我该如何解决?
我的 config.xml XML 如下所示:
<?xml version="1.0"?>
<rdbmsinfo>
<dbtype value="sqlserver">
<db value="sqlsrv1">
<dbhostip>192.168.0.1</dbhostip>
<dbhostportno>2000</dbhostportno>
<dbusername>sample</dbusername>
<dbpassword>sample</dbpassword>
</db>
<db value="sqlsrv2">
<dbhostip>192.168.0.2</dbhostip>
<dbhostportno>2000</dbhostportno>
<dbusername>sample</dbusername>
<dbpassword>sample</dbpassword>
</db>
</dbtype>
<dbtype value="postgresql">
<db value="postsql1">
</db>
</dbtype>
</rdbmsinfo>
【问题讨论】:
标签: shell sed environment-variables