sch*_*uri 7 variables bash shell curl
我无法解决这个问题并希望得到你的帮助.
在bash脚本中,我使用curl命令,该命令应该从服务器获取数据.curl响应被放入bash变量中,因为我想检查响应.
响应如下:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body><dp:response xmlns:dp="http://www.datapower.com/schemas/management">
<dp:timestamp>2018-02-28T13:31:36+01:00</dp:timestamp>
<dp:result> OK </dp:result>
</dp:response>
</env:Body>
</env:Envelope>
Run Code Online (Sandbox Code Playgroud)
重要的是:
<dp:result> OK </dp:result>
Run Code Online (Sandbox Code Playgroud)
如何在我的bash脚本中检查这个确切的字符串是否在变量中(或不是)?我尝试了几种具有不同类型逃逸的方法,然而,到目前为止失败了(总是以一个特殊字符的问题结束).
谢谢您的帮助!
尝试一下,使用正确的工具完成正确的工作:
curl ..... | xmllint --xpath '//*[local-name()="result"]/text()'
Run Code Online (Sandbox Code Playgroud)
或者
xmllint --xpath '//*[local-name()="result"]/text()' http://domain.tld/path
Run Code Online (Sandbox Code Playgroud)
或者
curl ..... | xmlstarlet sel -t -v '//*[local-name()="result"]/text()'
Run Code Online (Sandbox Code Playgroud)
OK
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
result="$(chosen_command)"
if [[ $result == *OK* ]]; then
echo "OK"
else
echo >&2 "ERROR"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
(替换chosen_command为...您选择的命令)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |