Shell脚本生成网页版相册浏览器
今天学到了一招,那就是使用脚本制作一款网页版相册浏览器。先上图吧。
必备基础
操作系统: 以linux为内核的操作系统都行
编程语言:Shell(bash)脚本,相关基础知识即可
下载工具:wget
图片处理工具: ImageMagicK,
解压缩工具 : rar ,bzip都行
额外技能:一些基本的Linux操作命令,如此即可。
软件安装
这里说的软件安装主要是指解压缩工具和图片下载工具的使用。因为我的linux是在虚拟机里,而且没有安装文件共享增强(如果安装了增强的话,就不必安装解压缩工具了)
- ImageMagicK下载:
# 不同的linux发行版包管理软件可能不一样,请按照自己的情况使用
sudo apt-get install ImageMagicK
- rar安装:
sudo apt-get install rar
rar 解压缩工具不是必须的,因为我本机的windows没有安装zip文件解压工具,所以需要使用.rar解压工具。
工具的使用
wget 的使用,我在这里使用wget只是为了下载演示用的图片。其他的高级的使用请参照http://blog.csdn.net/marksinoberg/article/details/51790203
rar的使用:
这里我一开始也是遇到了一些问题,那就是路径的问题。下面谈谈解压缩的具体使用。解压:
rar x target.rar
即可,x参数就代表了解压。压缩:
rar a result.rar
,这里需要注意的是需要进入到待压缩的文件夹,这样才能把该文件夹内所有的文件add 到result.rar文件中。其他的使用方法,我们可以使用man 命令详细的研究,这里有这些基础就足够了。
ImageMagicK的使用:
这里仍旧是只需要一点的功能,那就是将图片的尺寸缩小,仅此而已,其他的高级使用暂且还用不到。
convert -sample 25%x25% old.jpg new.jpg
Shell脚本
#!/bin/bash
#filename:generate_album.sh
#description: 把本地照片生成缩略图之后作为连接,生成网页版的相册浏览器
echo "Creating album..."
mkdir -p thumbs
cat <<EOF1 >index.html
<html>
<head>
<style>
body{
width:470px;
margin:auto;
border:1px dashed grey;
padding:10px;
}
img{
margin:5px;
border:1px solid black;
}
</style>
</head>
<body>
<center><h1>#Album title</h1></center>
<p>
EOF1
for img in *.jpg;
do
convert -sample 25%x25% "$img" "thumbs/$img"
echo "<a href=\"$img\"><img src=\"thumbs/$img\" title=\"$img\" /></a>" >>index.html
done;
cat <<EOF2 >> index.html
</p>
</body>
</html>
EOF2
echo "Album generated Success!"
代码释义
核心代码也就如下:
for img in *.jpg;
do
convert -sample 25%x25% "$img" "thumbs/$img"
echo "<a href=\"$img\"><img src=\"thumbs/$img\" title=\"$img\" /></a>" >>index.html
其原理:
遍历当前文件夹下的所有的.jpg文件,然后使用convert命令生成新的缩略图并放到thumbs文件夹下。然后将标签添加到index.html中。
运行方法
# 为文件添加可执行权限
chmod 755 generate_album.sh
# 在当前目录下执行
./generate_album.sh
结语
Shell脚本配合强大的linux命令,总是能产生让人意想不到的效果。想必,windows下的cmd命令就乏陈可谓了。不过最近貌似微软开源了.net core项目,能执行linux命令的预览版也已经发布了。希望能在不久的将来,在windows上也能愉快的写shell脚本啊。 :-)
Shell脚本生成网页版相册浏览器的更多相关文章
- 利用python和shell脚本生成train.txt的标签文件
1. 用shell脚本生成带绝对路径的train.txt 例如我要生成如下形式的带标签的文件,如图:(如有两个标签:0 和 1) shell脚本如下: 这样标签0写入了train.txt # /usr ...
- 使用shell脚本生成数据库markdown文档
学习shell脚本编程的一次实践,通过shell脚本生成数据库的markdown文档,代码如下: HOST=xxxxxx PORT=xxxx USER="xxxxx" PASSWO ...
- 利用shell脚本生成CHANGELOG.md(包含git提交规范)
前言 我们经常看到github上面有很多CHANGELOG.MD包含版本的更新信息,如果我们的git提交能遵循一定的规范,那么使用gitlog就能很方便的生成它 生成结果  shell脚本 http ...
- shell脚本生成xml文件
今天把这段时间学习完shell后完成工作上的一个小案件整理了一下,分享给大家! 说来也巧了,作为一个刚刚毕业半年的菜鸟,进入公司后,听公司的大牛推荐学习linux--”鸟哥的私房菜“,基本上是从去年8 ...
- shell脚本下载网页图片
和大家分享一个shell脚本写的图片抓取器.使用方法:img_downloader.sh.使用时在shell下输入:./img_downloader.sh www.baidu.com -d image ...
- 用shell脚本生成at一次性的计划任务
用shell生成一次性计划任务,这个任务就是执行另一个脚本 #!/bin count=`grep "sh /usr/local/sbin/iptables.sh" /var/spo ...
- iOS开发系列-Shell脚本生成IPA
概述 在公司开发到了测试阶段需要频繁打包交付给测试,看似简单的工作,重复的流程总是感觉不是那么好,我们可以借助苹果提供的编译指令编译项目. 自动化脚本编译打包IPA 常见的iOS项目就是基于xcode ...
- shell脚本生成限定范围的随机数
#!/bin/bash +)) 这串代码实现了随机生成从1~50之间是数 这串代码特别简单,就是利用RANDOM这个随机数生成器进行取余就能够实现,至于为什么取余时需要+1是因为在取余时如果被整除那么 ...
- 案例四:Shell脚本生成随机密码
生成随机密码(urandom版本) #!/bin/bash #Author:丁丁历险(Jacob) #/dev/urandom文件是Linux内置的随机设备文件 #cat /dev/urandom可以 ...
随机推荐
- 学习flexible.js
flexible是手淘团队总结的一套移动端适配方案,这篇文章是自己对flexible学习历程的记录,也算是一个备忘. https://github.com/amfe/article/issues/17 ...
- pat 1001 A+B Format
题目链接:传送门 题目简述: 1. 给定两个整数值a,b: 2.范围-1000000 <= a, b <= 1000000: 3.按指定格式输出结果 例:-100000 9 输出: -99 ...
- 利用 pyspider 框架抓取猫途鹰酒店信息
利用框架 pyspider 能实现快速抓取网页信息,而且代码简洁,抓取速度也不错. 环境:macOS:Python 版本:Python3. 1.首先,安装 pyspider 框架,使用pip3一键安装 ...
- [Apio2009]Atm
题目描述 输入 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口编号.接下来N行,每 ...
- UVALive - 3027:Corporative Network
加权并查集 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring&g ...
- [USACO12OPEN]书架Bookshelf
Description 当农夫约翰闲的没事干的时候,他喜欢坐下来看书.多年过去,他已经收集了 N 本书 (1 <= N <= 100,000), 他想造一个新的书架来装所有书. 每本书 i ...
- HDU 4526 拼车记
话说威威猫有一次去参加比赛,虽然学校离比赛地点不太远,但威威猫还是想坐出租车去.大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人坐车去,还是一堆人一起,总共需要支付的钱是一样的(每辆出租 ...
- UOJ #11. 【UTR #1】ydc的大树
题目描述: ydc有一棵n个结点的黑白相间的大树,从1到n编号. 这棵黑白树中有m个黑点,其它都是白点. 对于一个黑点我们定义他的好朋友为离他最远的黑点.如果有多个黑点离它最远那么都是它的好朋友.两点 ...
- [Noi2015]小园丁和老司机
来自FallDream的博客,未经允许,请勿转载,谢谢. 小园丁 Mr. S 负责看管一片田野,田野可以看作一个二维平面.田野上有n棵许愿树,编号1,2,3,…,n,每棵树可以看作平面上的一个点,其中 ...
- 中断API之setup_irq【转】
转自:https://blog.csdn.net/tiantao2012/article/details/78957472 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...