shell基础编程实例讲解.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:349 大小:2.2MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

shell基础编程实例讲解.pdf

shell基础编程实例讲解.pdf

预览

免费试读已结束,剩余 339 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一些shell编程的例子Example2-1清除:清除/var/log下的log文件################################StartScript########################################Cleanup#当然要使用root身份来运行这个脚本cd/var/logcat/dev/null>messagescat/dev/null>wtmpecho"Logscleanedup."################################EndScript#########################################Example2-2清除:一个改良的清除脚本################################StartScript########################################!/bin/bash#一个Bash脚本的正确的开头部分.#Cleanup,版本2#当然要使用root身份来运行.#在此处插入代码,来打印错误消息,并且在不是root身份的时候退出.LOG_DIR=/var/log#如果使用变量,当然比把代码写死的好.cd$LOG_DIRcat/dev/null>messagescat/dev/null>wtmpecho"Logscleanedup."exit#这个命令是一种正确并且合适的退出脚本的方法.################################EndScript#########################################Example2-3.cleanup:一个增强的和广义的删除logfile的脚本################################StartScript########################################!/bin/bash#清除,版本3#Warning:#-------#这个脚本有好多特征,这些特征是在后边章节进行解释的,大概是进行到本书的一半的#时候,#你就会觉得它没有什么神秘的了.#LOG_DIR=/var/logROOT_UID=0#$UID为0的时候,用户才具有根用户的权限LINES=50#默认的保存行数E_XCD=66#不能修改目录?E_NOTROOT=67#非根用户将以error退出#当然要使用根用户来运行if["$UID"-ne"$ROOT_UID"]thenecho"Mustberoottorunthisscript."exit$E_NOTROOTfiif[-n"$1"]#测试是否有命令行参数(非空).thenlines=$1elselines=$LINES#默认,如果不在命令行中指定fi#StephaneChazelas建议使用下边#+的更好方法来检测命令行参数.#+但对于这章来说还是有点超前.##E_WRONGARGS=65#非数值参数(错误的参数格式)##case"$1"in#"")lines=50;;#*[!0-9]*)echo"Usage:`basename$0`file-to-cleanup";exit$E_WRONGARGS;;#*)lines=$1;;#esac##*直到"Loops"的章节才会对上边的内容进行详细的描述.cd$LOG_DIRif[`pwd`!="$LOG_DIR"]#或者if["$PWD"!="$LOG_DIR"]#不在/var/log中?thenecho"Can'tchangeto$LOG_DIR."exit$E_XCDfi#在处理logfile之前,再确认一遍当前目录是否正确.#更有效率的做法是##cd/var/log||{#echo"Cannotchangetonecessarydirectory.">&2#exit$E_XCD;#}tail-$linesmessages>mesg.temp#保存logfile消息的最后部分.mvmesg.tempmessages#变为新的log目录.#cat/dev/null>messages#*不再需要了,使用上边的方法更安全.cat/dev/null>wtmp#':>wtmp'和'>wtmp'具有相同的作用echo"Logscleanedup."exit0#退出之前返回0,返回0表示成功.#################################End