加载中...

Shell Scripts


完全用 GNU/Linux 工作

10. Shell Script

Shell Scripts 说穿了就是把 bash 各种的指令 (command) 包进一个 Scripts 里,并搭配条件判断式、循环 (loop) 及应付各种状况,更可与排程 (Cron Job) 结合进行周期性的作业。

随着使用的指令及撰写的 Scripts 增加,对电脑的整体观念及熟悉度也会随之提升。这种完全操控电脑的招式就藏在日常生活中,等著大家去发现!这就是为什么冻仁会坚持要学习指令的原因,依赖图形接口是难以得到累积的。以下就让冻仁介绍些 Scripts。

使用 wget 下载指定档案内的连结

原先冻仁都习惯用自己写的 wget-list.sh 来批次下载指定的档案,但后来发现 wget 早就支援指定档案下载的参数 -i 于此跟大家分享。

  1. $ wget -i list.txt

使用 MD5 进行批次验证

相信 MD5 批次验证一功能在 Windows 上有不少的替代方案。但如果能直接在效能极佳的服务器上进行离线作业不是更好?这支简单的 Scripts 是个让冻仁提早下班的压箱宝呢!

建立批次产生验证档 script。 [mirror]

  1. $ cat md5-make.sh
  2. #!/bin/bash
  3. # Filename: md5-make.sh
  4. # Info: make md5sum fils with list.txt
  5. for X in $(cat list.txt); do
  6. # 依序使用 md5sum 檢查當前目錄下所有檔案,並將其儲存其結果。
  7. echo "md5sum $X > $X.sum " | bash
  8. done

建立批次验证 script。 [mirror]

  1. $ cat md5-check.sh
  2. #!/bin/bash
  3. # Filename: md5-check.sh
  4. # Info: use md5sum check fils with list.txt
  5. for X in $(cat list.txt); do
  6. # 依序檢查當前目錄下所有的 .sum。
  7. echo "md5sum -c $X.sum" | bash
  8. # 使用背景執行 (&) 是個很好的加速方法,但當檔案過大或過多時會導致系統過於忙碌而無法進行其它作業。
  9. #echo "md5sum -c $X.sum" | bash &
  10. done

观看当前目录之档案。

  1. $ ls
  2. index.htm index.html index.php md5-check.sh md5-make.sh

将欲验证档写入 list.txt

  1. $ ls index.* > list.txt; cat list.txt
  2. index.htm
  3. index.html
  4. index.php

批次产生 MD5 验证档。

  1. $ ./md5-make.sh

批次进行 MD5 验证并储存纪录,事后就可借由纪录档观看整体的执行结果。

  1. $ ./md5-check.sh | tee md5-result.log
  2. index.htm: OK
  3. index.html: OK
  4. index.php: OK

资料来源

  • 鸟哥的 Linux 私房菜 -- 学习 Shell Scripts
  • 柏青哥的 SuSE Linux -- 简易的 Shell Scripts
  • FreeBSD 6.0 架设管理与应用 -- 第二十一章 Shell Scripts
  • 冻仁于 GitHub 上的 Shell Scripts
  • 冻仁的笔记: Shell Scripts

还没有评论.