无法解析从XML读取的Unix命令

时间:2014-09-24 11:39:21

标签: bash unix

我有XML文件说app_config.xml。这包含以下行:

app_config.xml

<conf>
    <LOGFILENAME>seasonalitylog.$now.log</LOGFILENAME>
</conf>

我正在读一个脚本文件说test.sh

test.sh

file_name=awk -F '</?LOGFILENAME>' $'{print $2}' app_config.xml

尝试使用eval命令: eval echo awk -F '</?LOGFILENAME>' '{print $2}' app_config.xml但它没有返回正确的结果。它返回空白。

请帮助我理解我错在哪里。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

你没有用那条线运行那个awk命令。

您正在分配&#34; awk&#34;到file变量并尝试运行-F命令。

您需要在$(....)中包装awk命令。

file_name=$(awk -F '</?LOGFILENAME>' $'{print $2}' app_config.xml)

答案 1 :(得分:1)

对于XML解析,您可能希望使用xpath

$ xpath -q -e "/conf/LOGFILENAME/text()" app_config.xml
seasonalitylog.$now.log

或在变量中:

filename=$(xpath -q -e "/conf/LOGFILENAME/text()" app_config.xml)