加载中...

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

还没有评论.