Shell Scripts
完全用 GNU/Linux 工作
10. Shell Script
Shell Scripts 说穿了就是把 bash 各种的指令 (command) 包进一个 Scripts 里,并搭配条件判断式、循环 (loop) 及应付各种状况,更可与排程 (Cron Job) 结合进行周期性的作业。
随着使用的指令及撰写的 Scripts 增加,对电脑的整体观念及熟悉度也会随之提升。这种完全操控电脑的招式就藏在日常生活中,等著大家去发现!这就是为什么冻仁会坚持要学习指令的原因,依赖图形接口是难以得到累积的。以下就让冻仁介绍些 Scripts。
使用 wget 下载指定档案内的连结
原先冻仁都习惯用自己写的 wget-list.sh 来批次下载指定的档案,但后来发现 wget 早就支援指定档案下载的参数 -i 于此跟大家分享。
$ wget -i list.txt
使用 MD5 进行批次验证
相信 MD5 批次验证一功能在 Windows 上有不少的替代方案。但如果能直接在效能极佳的服务器上进行离线作业不是更好?这支简单的 Scripts 是个让冻仁提早下班的压箱宝呢!
建立批次产生验证档 script。 [mirror]
$ cat md5-make.sh
#!/bin/bash
# Filename: md5-make.sh
# Info: make md5sum fils with list.txt
for X in $(cat list.txt); do
# 依序使用 md5sum 檢查當前目錄下所有檔案,並將其儲存其結果。
echo "md5sum $X > $X.sum " | bash
done
建立批次验证 script。 [mirror]
$ cat md5-check.sh
#!/bin/bash
# Filename: md5-check.sh
# Info: use md5sum check fils with list.txt
for X in $(cat list.txt); do
# 依序檢查當前目錄下所有的 .sum。
echo "md5sum -c $X.sum" | bash
# 使用背景執行 (&) 是個很好的加速方法,但當檔案過大或過多時會導致系統過於忙碌而無法進行其它作業。
#echo "md5sum -c $X.sum" | bash &
done
观看当前目录之档案。
$ ls
index.htm index.html index.php md5-check.sh md5-make.sh
将欲验证档写入 list.txt
$ ls index.* > list.txt; cat list.txt
index.htm
index.html
index.php
批次产生 MD5 验证档。
$ ./md5-make.sh
批次进行 MD5 验证并储存纪录,事后就可借由纪录档观看整体的执行结果。
$ ./md5-check.sh | tee md5-result.log
index.htm: OK
index.html: OK
index.php: OK
资料来源
鸟哥的 Linux 私房菜 -- 学习 Shell Scripts
柏青哥的 SuSE Linux -- 简易的 Shell Scripts
FreeBSD 6.0 架设管理与应用 -- 第二十一章 Shell Scripts
冻仁于 GitHub 上的 Shell Scripts
冻仁的笔记: Shell Scripts