Linux: Shell编程中的应用之基于sh脚本生成网页
应用场景
- 使用脚本,生成一个网页,这个网页中展示图片
- 网页中展示的图片是一张张的缩略图
- 点击缩略图,链接到原始图片,我们实现这样的功能
环境准备
1 )准备目录和文件
- $
mkdir gallery
- $
cd gallery && mkdir thumbnails
这里创建一个缩略图目录
2 )目录结构
gallery
├── 1.jpg
├── 2.jpg
├── 3.jpg
├── 4.jpg
├── 5.jpg
├── 6.jpg
├── 7.jpg
├── 8.jpg
├── gallery.html
├── gallery.sh
├── thumbnails 这个目录也可自动生成
│ └── 注意,这里是通过工具生成的 1.jpg 等
3 )关于缩略图和工具准备
- thumbnail 就是缩略图目录
- 网页或计算机上图片经压缩处理后的小图
- convert 命令帮助我们从原始图片生成缩略图
- convert 这个命令属于 ImageMagick 这个软件
- 安装软件:$
sudo yum install ImageMagick
- convert 命令生成缩略图参数:-thumbnail
4 )脚本准备
- 根据目录中的每张图片,生成对应缩略图
- 生成一个html文件,插入缩略图
- 给每个缩略图绑定一个链接,链接到原始图片
- 准备这个文件 gallery.sh
- 使用的时候,可以加参数,也可不加
- 加参数,则表示新网页名称,如 $
./gallery.sh myGallery.html
- 不加则默认使用 gallery.html
脚本编写
$ vim gallery.sh
,如下:
#!/bin/bash
# Verification of parameter(验证参数)
# If no parameter, use a default value(如果没有给出参数,那么用默认值 gallery.html )
if [ -z $1 ]
then
output='gallery.html'
else
output=$1
fi
# Preparation of files and folders(准备文件和目录)清空html文件
echo '' > $output
if [ ! -e thumbnails ]
then
mkdir thumbnails
fi
# Beginning of HTML(HTML 文件的开头)
echo '<!DOCTYPE html>
<html>
<head>
<title>My Gallery</title>
</head>
<body>
<p>' >> $output
# Generation of thumbnails and the HTML web page(生成图片的缩略图和 HTML 的页面主体)
for image in `ls *.jpg *.png *.jpeg *.gif 2>/dev/null`
do
# 这里使用 convert 命令生成缩略图到thumbnails目录,小于200*200的不会处理
convert $image -thumbnail '200x200>' thumbnails/$image
echo ' <a href="'$image'"><img src="thumbnails/'$image'" alt=""/></a>' >> $output
done
# End of HTML(HTML 文件的结尾)
echo ' </p>
</body>
</html>' >> $output
- 授权 $
chmod +x gallery.sh
- 执行 $
./gallery.sh
- $
ls
可见生成一个 gallery.html 文件,打开即可浏览 - 后续可能得优化
- 在每张缩略图下展示其他信息
- 例如:图片原始尺寸,最近一次修改图片时间
- 要获取这些信息,需要调用 convert 命令