源码
#!/bin/zsh
album_dir=/old/blog/themes/liveJQ/source/img/albums/
pics=($(ls $album_dir | sort --sort=general-numeric))
printf '['
for ((i=1;i<=${#pics[@]};i++))
do
printf '{\n'
printf "\t\t\t\"links\":\"${album_dir##*source}${pics[$i]}\",\n"
if [ $i -lt 29 ]
then
printf "\t\t\t\"title\":\"逝水年华\",\n"
elif [ $i -lt 45 ]
then
printf "\t\t\t\"title\":\"我们的时光\",\n"
else [ $i -lt 60 ]
printf "\t\t\t\"title\":\"新的开始\",\n"
fi
pic=$album_dir$pics[$i]
eWidth=$(identify -format %w $pic)
eHeight=$(identify -format %h $pic)
tWidth=$((eWidth-10))
tHeight=$((eHeight-10))
printf "\t\t\t\"tWidth\":$tWidth,\n"
printf "\t\t\t\"tHeight\":$tHeight,\n"
printf "\t\t\t\"eWidth\":$eWidth,\n"
if [ $i -eq ${#pics[@]} ]
then
printf "\t\t\t\"eHeight\":$eHeight\n\t}"
else
printf "\t\t\t\"eHeight\":$eHeight\n\t},\n"
fi
done
printf "]\n"
这里发现一个有意思的地方就是:当使用#!/bin/bash的时候,数组是从0开始的;而使用#!/bin/zsh的时候,数组是从1开始的。
输出
[
{
"links":"/img/albums/1.jpeg",
"title":"逝水年华",
"tWidth":"1127",
"tHeight":"630",
"eWidth":"1137",
"eHeight":"640"
},
{
"links":"/img/albums/2.jpeg",
"title":"逝水年华",
"tWidth":"1127",
"tHeight":"630",
"eWidth":"1137",
"eHeight":"640"
},
...
...
...
]
使用
使用自带的 bash 运行
bash ./auto_create_gallery.sh > /old/blog/source/_data/gallery.json
使用设置的 zsh 运行
zsh ./auto_create_gallery.sh > /old/blog/source/_data/gallery.json
评论区