codecamp

GNU/Linux 使用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

资料来源


GNU/Linux 介绍Hacking Bash
GNU/Linux 使用Hacking Vim
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }