资源描述:
《shell基础编程实例讲解.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一些shell编程的例子Example2-1清除:清除/var/log下的log文件################################StartScript########################################Cleanup#当然要使用root身份来运行这个脚本cd/var/logcat/dev/null>messagescat/dev/null>wtmpecho"Logscleanedup."################################EndScript###################################
2、######Example2-2清除:一个改良的清除脚本################################StartScript########################################!/bin/bash#一个Bash脚本的正确的开头部分.#Cleanup,版本2#当然要使用root身份来运行.#在此处插入代码,来打印错误消息,并且在不是root身份的时候退出.LOG_DIR=/var/log#如果使用变量,当然比把代码写死的好.cd$LOG_DIRcat/dev/null>messagescat/dev/null>wtmpecho"Logscl
3、eanedup."exit#这个命令是一种正确并且合适的退出脚本的方法.################################EndScript#########################################Example2-3.cleanup:一个增强的和广义的删除logfile的脚本################################StartScript########################################!/bin/bash#清除,版本3#Warning:#-------#这个脚本有好多特征,这些特征是在后边章
4、节进行解释的,大概是进行到本书的一半的#时候,#你就会觉得它没有什么神秘的了.#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#默认,如果不
5、在命令行中指定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"]#
6、不在/var/log中?thenecho"Can'tchangeto$LOG_DIR."exit$E_XCDfi#在处理logfile之前,再确认一遍当前目录是否正确.#更有效率的做法是##cd/var/log
7、
8、{#echo"Cannotchangetonecessarydirectory.">&2#exit$E_XCD;#}tail-$linesmessages>mesg.temp#保存logfile消息的最后部分.mvmesg.tempmessages#变为新的log目录.#cat/dev/null>messages#*不再需要了,使用上边的方法更安全.cat/dev/null
9、>wtmp#':>wtmp'和'>wtmp'具有相同的作用echo"Logscleanedup."exit0#退出之前返回0,返回0表示成功.#################################EndScript#########################################因为你可能希望将系统log全部消灭,这个版本留下了log消息最后的部分.你将不断地找到新的方法来完善这个脚本,并提高效率.要注意,在每个脚本的开头都使用