curlでログインが必要なサイトからファイルをダウンロードする

#!/bin/sh

set -ex

curl -k -c cookie.txt --user "username:password" -d "username=username" -d "password=password" "https://example.com/login"
for i in `seq 1 10`
do
    sleep 1
    curl -k -b cookie.txt --user "username:password" -O "https://example.com/images/$i.jpg"
done

-c cookie.txtでクッキー保存して、-b cookie.txtでクッキー読み込むのと、--userでbasic authに対応する感じですね。

ほんとは

curl -k -b cookie.txt --user "username:password" -O "https://example.com/images/$i.jpg"

なんてfor文とか書かずに

curl -k -b cookie.txt --user "username:password" -O "https://example.com/images/[1-10].jpg"

って書きたいけど、sleepが必要でちょっと調べた感じだとcurl単体でやる方法はないっぽいのでこうなった。