Linux操作系统-第十一章-shell程序设计2.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:99 大小:1.2MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Linux操作系统-第十一章-shell程序设计2.ppt

Linux操作系统-第十一章-shell程序设计2.ppt

预览

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

15 金币

下载此文档

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

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

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

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

第十一章shell程序设计主要内容shell是一种命令语言,同时又是一种程序设计语言。shell的语言处理能力,使得用户能够方便地定义各种变量、参数,并使用各种控制语句编写复杂的命令程序完成多种工作。本章介绍shell、shell程序设计语言、shell的运行环境及shell程序的实例。11.1shell概述shell本身也是一种可编程的程序设计语言。用shell写的程序(shell脚本)相当于dos/windows下的批处理文件,它可以简单到只有一条命令,也可以复杂到包括大量循环、条件语句、数学运算、控制结构,也可以是介于两者之间的程序。11.1.2shell程序语言的特点shell允许通过编程来完成复杂的功能处理,但其作为语言与高级语言相比较具有不同的特点:(1)shell是解释性的,多数高级语言是编译性的;(2)shell语言与高级语言处理的对象不同;(3)shell与系统有密切的关系;(4)shell易编写、调试、灵活性较强,但速度低;(5)shell作为命令级语言,命令组合功能很强。11.1.3bash的特点shell有两种主要语法类型:Bourneshell和Cshell,彼此不兼容。这里,我们再着重介绍一下bash的特点:(1)自动补全功能假设要输入的命令很长,或者命令后面要给的文件名很长。这个时候只要按一个Tab键,bash就会在可能的命令或文件名里面找寻匹配的命令,找到的话就会自动帮你补齐。(2)命令行编辑程序bash的命令行编辑是在提示符下,可对未执行的命令字符任意地修改。(3)命令历史(commandhistory)所谓的命令历史就是把曾经输入过的命令记录起来,方便日后的查询与使用。只要按向上键就可以调出前一个命令,再按一次向上键就可以调出更前一个命令,依此类推,用向下键可以回到下个命令,所以用上、下键就可以选择以前输入过的命令。11.1.4Shell程序的创建与执行11.1.5Shell程序示例11.2shell变量11.2.2用户自定义变量用户自定义变量语法格式:name=string,赋值号“=”两边不允许有空白符。例:nodehost=beijing.UUCPpath=/bin:/usr/bin:/etc/bincount=10允许多个赋值操作,按从右到左的顺序进行。例:#B=abcA=$BC=″OK″#echo$A$B$CabcabcOK当引用一个未设置的变量时,其隐含值为空。例:#echo″$mailispathofmailbox″ispathofmailbox11.2.3shell中的特殊字符1.双引号(“”)如果用双引号“”将值括起来,则括起来的字符串允许出现空格、制表符和换行符等特殊字符,而且允许有变量替换。例1:#MAIL=/var/mail/fk#var=″$MAILispathofmailbox″#echo$var/var/mail/fkispathofmailbox例2:#str=″Thisis\nabook″#echo$strThisisabook使用双引号能消除被括在双引号中的大部分特殊字符的含义,不能消除的字符有:$、`、!、\。例1:#echo″Typea\$*,please″Typea$*,please例2:#echo“todayis`date`”例3:#echo“!3”2.单引号(‘’)使用单引号消除被括在单引号中的所有特殊字符的含义,即单引号表示内容照原样不动。例3:#BOOK=″Englishbook″#MSG=′$BOOK′#echo$MSG-echo‘$MSG’#$BOOK$MSG例4:#msg=′Todayis`date`′#echo$msgTodayis`date`3.反撇号(``)当一个字符串被括在反撇号“`”中时,该字符串将作为命令被shell解释执行,即用命令的执行结果替换这个字符串本身。要注意反撇号与单引号的区别。例1:#lm=`pwd`#echo$lm/root例2:#now=′date′#echo$nowdate#now=`date`#echo$now1998年10月28日星期三17时51分56秒CST例3:#etho“Hostname:`hostname`”$()的功能与``一样例1:#now=$(date)#echo$now例2:#echo$(pwd)例3:#etho“Hostname:$(hostname)”4.转义符(\)使用转义符消除单个字符的特殊含义,即将紧跟在转义符后面的单个字符按字