在脚本中,我正在运行一个cURL命令,该命令返回一个xml文件。我正在尝试获取cURL命令的结果,并使用xml2对其进行解析。
#! /bin/bash
# xmlParse.sh
while read line
do
appID=`echo $line
| awk -F "app_id=" '{print $2}'
| awk '{print $1}'
| sed 's/\"//g'`
# output is a numerical value, ex: 123456
scanID=`curl --silent -u $uid:$pw $second_api_call -F app_id="$appID"
| awk -F "scan_id=" '{print $2}'
| awk '{print $1}'
| sed 's/\"//g'
| sed '/^$/d'
| tail -1` # this grabs the last scan on the app.
# output is a different numerical value, ex: 1234567
get_report=`curl --silent -u $uid:$pw $last_api_call -F scan_id="$scanID"`
# $get_report output is a report in a single line xml file.
c_name=`"xml2 < $get_report" | grep @name= | cut -d "=" -f2`
echo $c_name
done < <(curl --silent -u $uid:$pw $first_api_call)
我的错误如下:
./xmlParse.sh: line 7: xml2 < <?xml version='1.0' encoding='UTF-8'?>......
xml: File name too long
似乎它不是作为.xml文件读取,但由于整个文件是一个名称。 xml文件返回为一行。我已经尝试了多种可能的解决方案,但是感觉就像是我在挖一个更深的洞,现在开始盘旋。当我在终端中运行命令时,它可以正常工作并返回如下结果:
$ xml2 < report.xml | grep @name= | cut -d "=" -f2
Data Issues
Insufficient Memory
Insufficient Memory
Insufficient Memory
RSA Algorithm
Risky Algorithm
Code Quality
Improper Execution
Wrong Operator in String
Sensitive Information
Exposure Through Sent Data