linux系统内配置xml文件中用shell脚本读取一个 <tunnel_types> <tunnel_type> <type>35</type> </tunnel_type></tunnel_types> 输出type的值
时间: 2023-07-09 22:26:11 浏览: 159
可以使用命令行工具xmllint和xpath来读取XML文件中的值。假设XML文件名为config.xml,可以使用以下命令来输出type的值:
```
xmllint --xpath '//tunnel_type/type/text()' config.xml
```
这个命令会在XML文件中查找所有tunnel_type节点下的type节点,并输出它们的值。如果只想输出第一个type节点的值,可以使用以下命令:
```
xmllint --xpath '//tunnel_type[1]/type/text()' config.xml
```
相关问题
<?xml version="1.0" encoding="UTF-8"?> <!-- Default Primary Audio HAL Module Audio Policy Configuration include file for TV --> <module name="primary" halVersion="2.0"> <attachedDevices> <item>Speaker</item> </attachedDevices> <defaultOutputDevice>Speaker</defaultOutputDevice> <mixPorts> <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </mixPort> <mixPort name="direct" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT" /> <mixPort name="tunnel" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_HW_AV_SYNC" /> </mixPorts> <devicePorts> <devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink" /> <devicePort tagName="Out Aux Digital" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink" encodedFormats="AUDIO_FORMAT_AC3 AUDIO_FORMAT_IEC61937" /> </devicePorts> <routes> <route type="mix" sink="Speaker" sources="primary output"/> <route type="mix" sink="Out Aux Digital" sources="primary output,direct,tunnel"/> </routes> </module>
这是一个 TV 的音频策略配置文件,使用的是 XML 格式。它定义了一个名为 "primary" 的音频模块,指定了 "Speaker" 为默认输出设备,并定义了三个混合端口: "primary output"、 "direct" 和 "tunnel"。此外,还定义了两个设备端口: "Speaker" 和 "Out Aux Digital"。最后,定义了两条路由规则,将混合端口 "primary output" 的音频输出分别连接到设备端口 "Speaker" 和 "Out Aux Digital"。
xmllint --xpath '//tunnel_type/type/text()' config.xml 在脚本中判断这个结果等于35
您可以使用以下 Bash 脚本,将 xmllint 命令的输出结果存储到变量中,然后使用条件语句判断该变量是否等于 35:
```
#!/bin/bash
# Run xmllint command and save output to variable
tunnel_type=$(xmllint --xpath '//tunnel_type/type/text()' config.xml)
# Check if tunnel_type is equal to 35
if [ "$tunnel_type" -eq 35 ]; then
echo "tunnel_type is 35"
else
echo "tunnel_type is not 35"
fi
```
请注意,此脚本假定您已经有一个名为 `config.xml` 的文件,并且该文件包含一个名为 `tunnel_type` 的元素,其中包含一个名为 `type` 的子元素,该子元素的文本内容为数字 35。如果您的 XML 文件结构不同,您需要相应地更改 XPath 表达式。
阅读全文