首页 > 代码库 > 15 shell之curl下载文件

15 shell之curl下载文件

前言

????最近忙于离职的工作交接,有日子没学习了,懒惰啊!

正文

  1. 需求

    譬如某一天我们做了一个软件。

    有时我们的软件需要自动根据到网上去获取当前版本是否要更新。如果"网上"需要更新则下载一些必要的文件

  2. 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

  3. 思路梳理

    首先判断本地的version文件,读取。

    用curl访问远程conf.txt,然后取第二行

    本地的 版本和远程版本进行比较,如果版本小则;

    1)模拟post访问update.php,并获取需要下载的地址

    2)使用wget下载下来

    ?

  4. 知识点梳理
    1. curl "命令行下的浏览器" 文件传输工具

    curl http://www.baidu.com

    以上都是用GET的方式直接访问网页。

    其实curl很牛逼的地方还能模拟提交

    curl -d "这里写post参数" 这里写网址

    1. 数字比较

      -gt是大于的意思 large than
      -lt是小于 less than
      -eq是等于 equal
      -ne是不等于not equal
      -ge是大于等于 large equal
      -le是小于等于? less equal

    2. curl 静默模式

      curl 网址

      会正常显示

      ?

???????? 赋值给你变量会显示统计信息

???????? result=`curl 网址`

???????? echo $result 会出现统计信息

????????????

????????静默模式:不显示统计信息

????????result=`curl 网址 -s`

  1. curl 网址 需要等待网站相应

    所以用 语句1 | 语句2

????????????代表只有语句1执行完的结果,作为语句2的参数

????????????之后用sed 读取下就OK了

?

尾声、

15 shell之curl下载文件