如何 'convert' 基于 curl 操作的变量到 bash 脚本中的字符串
How to 'convert' variable based on curl operation to a string in bash script
我在 bash 脚本方面没有真正的经验,但作为网站项目的一部分,我是 运行 一个 bash 脚本来检索 xml (使用 curl)通过获取 HTTP。然后我想将它输出到一个文件。但我只想在 xml 不包含特定字符串的情况下执行此操作。
我的数据供应商只允许我每 6 分钟执行一次 GETHTTP。
我能够检索 xml 并输出到文件,如下所示:
$URL = "insert get http URL here"
$OUTPUT = insert filename and path here
curl -s "$URL" -o $OUTPUT
为了引入一个 if 语句来检查字符串,我已将 curl 的输出分配给一个变量,然后我可以搜索该变量:
DATA=$(curl -s "$URL")
if [[ $DATA == mystring* ]]
then $DATA -o $OUTPUT
fi
但是,我的大问题是,当我尝试这样做时,每次查看 $DATA 时都会重新运行 curl,这超出了我在该时间段内允许的尝试次数。
如何将 curl 的输出分配给一个可以重复使用的变量,而无需在每次调用变量时重新运行 curl?
我原以为我可以将它转换为字符串,但我的搜索没有找到任何结果,所以我担心我使用了错误的搜索词。
这应该有效:
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
调用成功(并且它是 returns 文本)。然后您只需要正确操作它来搜索您的术语并将其输出到文件。
我在 bash 脚本方面没有真正的经验,但作为网站项目的一部分,我是 运行 一个 bash 脚本来检索 xml (使用 curl)通过获取 HTTP。然后我想将它输出到一个文件。但我只想在 xml 不包含特定字符串的情况下执行此操作。 我的数据供应商只允许我每 6 分钟执行一次 GETHTTP。
我能够检索 xml 并输出到文件,如下所示:
$URL = "insert get http URL here"
$OUTPUT = insert filename and path here
curl -s "$URL" -o $OUTPUT
为了引入一个 if 语句来检查字符串,我已将 curl 的输出分配给一个变量,然后我可以搜索该变量:
DATA=$(curl -s "$URL")
if [[ $DATA == mystring* ]]
then $DATA -o $OUTPUT
fi
但是,我的大问题是,当我尝试这样做时,每次查看 $DATA 时都会重新运行 curl,这超出了我在该时间段内允许的尝试次数。
如何将 curl 的输出分配给一个可以重复使用的变量,而无需在每次调用变量时重新运行 curl?
我原以为我可以将它转换为字符串,但我的搜索没有找到任何结果,所以我担心我使用了错误的搜索词。
这应该有效:
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
调用成功(并且它是 returns 文本)。然后您只需要正确操作它来搜索您的术语并将其输出到文件。