如何将基于curl操作的变量“转换”为bash脚本中的字符串

时间:2015-01-27 10:40:28

标签: bash curl

我没有真正的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?

我原本以为我可以将它转换为字符串,但我的搜索没有提出任何内容,所以我担心我使用了错误的搜索字词。

1 个答案:

答案 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就是一个字符串。然后,您只需要正确操作它来搜索您的术语并将其输出到文件中。