Created
November 29, 2013 09:26
-
-
Save QB/7703384 to your computer and use it in GitHub Desktop.
情報処理技術者試験の過去問ファイルを一括でダウンロードするスクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# ITパスポートは無視する | |
# 平成21〜25年以外の数値を渡されることは想定していない | |
# 想定外の数値や変なモノを渡されて暴走しても作者は関知しない | |
# パラメータはコマンドライン引数で指定できる | |
# 年と季節を指定すると、そのときの試験問題を全科目丸ごと取ってくる | |
heisei=$1 # 試験の年度を平成で指定 | |
kisetu=$2 # 春なら 1、秋なら 2 を指定 | |
################ 設定ここまで ################### | |
debug=0 # デバッグするときは1を指定 | |
seireki=`expr 1988 + $heisei` | |
nengou="h${heisei}" | |
dirname=${nengou}-${kisetu} | |
if [ $kisetu == 1 ] ; then | |
season="h" | |
else | |
season="a" | |
fi | |
if [ $kisetu == 1 -a $nengou == "h23" ] ; then # 震災 | |
season="tokubetsu" | |
fi | |
header="http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_${seireki}${nengou}_${kisetu}/${seireki}${nengou}${season}" | |
if [ $seireki -gt 2009 ] ; then | |
kiso=("fe" "ap") | |
elif [ $seireki == 2009 -a $kisetu == 2 ] ; then | |
kiso=("fe" "ap") | |
else | |
kiso=("fe" "ad" "ap") #シスアド | |
fi | |
kamoku1=("am" "pm") | |
kamoku2=("am2" "pm1" "pm2") | |
paper=("qs" "ans" "cmnt") | |
if [ $kisetu == 1 ]; then | |
high=("pm" "db" "es" "sc" "au") | |
else | |
high=("st" "sa" "nw" "sc" "sm") | |
fi | |
if [ $debug != 1 ] ; then | |
mkdir ${dirname} | |
mkdir ${dirname}/kiso ${dirname}/koudo | |
fi | |
getting() { | |
filename="${header}_${1}_${2}_${3}.pdf" | |
if [ ${1} == "fe" -o ${1} == "ad" -o ${1} == "ap" ]; then | |
directory="${dirname}/kiso" | |
else | |
directory="${dirname}/koudo" | |
fi | |
if [ $debug == 1 ] ; then | |
echo "wget -P $directory $filename" | |
else | |
wget -P $directory $filename | |
fi | |
} | |
# 基本/応用 | |
for i in ${kiso[@]}; do | |
for j in ${kamoku1[@]}; do | |
for k in ${paper[@]}; do | |
if [ $j != "am" -o $k != "cmnt" ]; then #午前試験にcmntは無い | |
getting $i $j $k | |
fi | |
done | |
done | |
done | |
# 高度午前1 | |
for k in qs ans; do | |
getting koudo am1 $k | |
done | |
# 高度その他 | |
for i in ${high[@]}; do | |
for j in ${kamoku2[@]}; do | |
for k in ${paper[@]}; do | |
if [ $j != "am2" -o $k != "cmnt" ]; then #午前2にcmntは無い | |
getting $i $j $k | |
fi | |
done | |
done | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment