Linux shell 获取 curl 返回值

2015-04-02 17:47:01 +08:00
 anai1943
对 shell 语法不熟,有个这样的需求,用 crontab 每天定时执行一次 xxx.shxxx.sh 里面的逻辑是这样的:不断 curl 请求 http://xxx.com/xxx.php ,xxx.php 会输出 1111 和 0000 ,当 xxx.php 输出 1111 时,继续请求 xxx.php ,直到输出 0000 ,xxx.sh 执行结束,请问下这个 xxx.sh 该怎么写?谢谢
52412 次点击
所在节点    程序员
10 条回复
xhat
2015-04-02 17:59:17 +08:00
或许你是想要:
crontab里面执行 /usr/bin/php *.php
anai1943
2015-04-02 18:13:13 +08:00
@xhat 我想用shell来发送http请求,不是用php的curl
ooxxcc
2015-04-02 18:17:42 +08:00
这个不是返回值……

RESULT=1111
while [[ $RESULT != "0000" ]]; do
RESULT=$(curl xxxxxxxxx)
sleep 1
done
jyz19880823
2015-04-02 18:20:05 +08:00
result=`curl http://xxx.com/xx.php -s`
chinawrj
2015-04-02 18:22:48 +08:00
可以输出到stdout, wget是"-",你看一下help。curl是啥。。
clanned
2015-04-02 18:25:35 +08:00
这个是你要的
https://gist.github.com/xdtianyu/aa339f6003604ef6a72f

xxx.sh文件
----

#/bin/bash

URL="http://192.168.5.100/xxx.php"

check() {
RESULT=$(curl -s http://192.168.5.100/xxx.php)
echo $RESULT

if [ "$RESULT" -eq "1111" ] ; then
echo "again"
sleep 1
check
elif [ "$RESULT" -eq "0000" ] ; then
echo "exit"
exit 0
else
echo "error"
fi
}

check

----

xxx.php文件模拟

----

<?php
if (rand()%5==0) {
echo "1111";
} else {
echo "0000";
}
?>
anai1943
2015-04-02 18:28:49 +08:00
@ooxxcc 么么哒。。可以了,感谢!
cevincheung
2015-04-02 18:30:29 +08:00
如果一定要用脚本的话不如用python了。- -#
wate
2015-04-03 11:45:09 +08:00
@cevincheung 所言甚是
ajan
2017-07-21 16:34:21 +08:00
@clanned 学习了,正好在折腾一个类似的脚本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181172

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX