首页 > 代码库 > 15 shell之curl下载文件
15 shell之curl下载文件
前言
????最近忙于离职的工作交接,有日子没学习了,懒惰啊!
正文
- 需求
譬如某一天我们做了一个软件。
有时我们的软件需要自动根据到网上去获取当前版本是否要更新。如果"网上"需要更新则下载一些必要的文件
- shell实现
LOCAL_VER=`cat version`
REMOTE_VER=`curl http://www..@@@..com/test/conf.txt -s | sed -n ‘2p‘` # -s 静默模式,不显示细节
#echo $REMOTE_VER
if [ $LOCAL_VER -lt $REMOTE_VER ]
then
# echo "begin update"
GET_UPDATE=`curl -d "password=123" http://www.@@@.com/test/update.php -s` #-d post 提交
wget $GET_UPDATE
echo "2">version
fi
- 思路梳理
首先判断本地的version文件,读取。
用curl访问远程conf.txt,然后取第二行
本地的 版本和远程版本进行比较,如果版本小则;
1)模拟post访问update.php,并获取需要下载的地址
2)使用wget下载下来
?
- 知识点梳理
- curl "命令行下的浏览器" 文件传输工具
curl http://www.baidu.com
以上都是用GET的方式直接访问网页。
其实curl很牛逼的地方还能模拟提交
curl -d "这里写post参数" 这里写网址
- 数字比较
-gt是大于的意思 large than
-lt是小于 less than
-eq是等于 equal
-ne是不等于not equal
-ge是大于等于 large equal
-le是小于等于? less equal - curl 静默模式
curl 网址
会正常显示
?
???????? 赋值给你变量会显示统计信息
???????? result=`curl 网址`
???????? echo $result 会出现统计信息
????????????
????????静默模式:不显示统计信息
????????result=`curl 网址 -s`
- curl 网址 需要等待网站相应
所以用 语句1 | 语句2
????????????代表只有语句1执行完的结果,作为语句2的参数
????????????之后用sed 读取下就OK了
?
尾声、
15 shell之curl下载文件