1
私は私のXPathクエリは、私は環境がなければ、環境変数xmllintに渡されるコマンドに環境変数を渡す方法は?
に格納したい、正しいDBTYPEにナビゲートする必要がxmllint
を使用してXMLファイルからdb
要素のvalue
属性を抽出しようとしています変数(ハードコードされた)、このコマンドは
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
は、シェルパラメータの値を"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>