我没有真正的bash脚本经验,但作为网站项目的一部分,我正在运行一个bash脚本来通过GETHTTP检索xml(使用curl)。然后我想将它输出到一个文件。但是,如果xml不包含某个字符串,我只想这样做。 我的数据供应商只允许我每6分钟执行一次GETHTTP。
我能够检索xml并输出到文件,如下所示:
$ URL ="在此处插入获取http网址"
$ OUTPUT =在此处插入文件名和路径
curl -s" $ URL" -o $ OUTPUT
为了引入一个if语句来检查字符串,我已经将curl的输出分配给一个变量,然后我可以搜索它:
DATA = $(curl -s" $ URL")
if [[$ DATA == mystring *]]
然后$ DATA -o $ OUTPUT
网络连接
然而,我最大的问题是,当我尝试这个时,每当它看到$ DATA时,它会重新运行超过我在该时间段内允许的尝试的卷曲。
如何将curl的输出分配给一个可以重复使用的变量,而不必在每次调用变量时重新运行curl?
我原本以为我可以将它转换为字符串,但我的搜索没有提出任何内容,所以我担心我使用了错误的搜索字词。
答案 0 :(得分:1)
这应该有效:
URL="http://your.url/some/path"
OUTPUT="/path/to/output"
DATA=$(curl -s "$URL")
if echo $DATA | grep "mystring" >/dev/null
then
echo $DATA > $OUTPUT
fi
只要$DATA
调用成功(并返回文本), curl
就是一个字符串。然后,您只需要正确操作它来搜索您的术语并将其输出到文件中。