unix shell? 程序设计
【相关文章:此Vector非彼Vector 】http://91mail.51.net提供??需要完整的pdf文档请到http://91mail.51.net下载 【扩展阅读:模板——泛型和STL的基础】
【扩展信息:MFC 全接触 (一)】??? unix? shell概述??? shell启动及其命令 ??? shell命令的集成 ??? shell 变量 ??? shell的控制结构 ??? shell的运行环境 ??? ?第一节unix shell概述 *? ?什么是 shell *? ?shell的双重特性 *? ?shell程序语言的特点 *? ?shell的版本 *? ?shell版本的选择 什么是 shell?? shell就是unix提供用户的使用界面 。
shell处在内核与外层应用程序之间,起着 协调用户与系统的一致性、在用户与系统 之间进行交互的作用,即 shell为用户提供 了输入命令与参数并可得到命令执行结果 的环境。 shell的双重特性 ?f? 命令解释程序(命令解释器) ??????? shell解释用户输入的命令行,提交系统内核 处理,并将结果返回给用户; ??? shell与unix命令一样都是实用程序,但有区 别。一旦用户注册到系统后, shell 就被系统装 入内存,并一直运行到用户退出系统之止;而一 般命令仅当被调用时,才由系统装入内存执行。 ?f? 程序设计语言 ??? shell本身也是一种可编程的程序设计语言。 6.1.1? shell的特点与主要版本? ???? shell允许通过编程来完成复杂的功能处理, 但其作为语言与高级语言比较具有不同的特点: ? shell是解释性的,多数高级语言是编译性的; ?· shell语言与高级语言处理的对象不同; ?¸ shell与系统有密切的关系; ?¹ shell易编写、调试、灵活性较强,但速度低; ?º shell作为命令级语言,命令组合功能很强。 shell的版本? shell版本的选择 选择shell版本应考虑的因素: ?? bourne shell在任何一个unix系统平台上都存在,因此又成为标准shell; ?·? bourne shell家族有更丰富的程序语言,而 c shell家族有简单的程序接口; ?¸? shell各类变种功能越来越强大,但学习与使用也越难,因此可依据使用者编程经验来选择; ?¹ shell编程的脚本是个人使用还是公用,即要 考虑移植性问题。6.1.2? shell程序示例
6.1.3 shell脚本的建立与执行 第2节 shell变量 *???? shell变量 *???? 用户自定义变量 *???? 位置变量 *???? 预定义的特殊变量 *???? 环境变量 *???? 变量替换?f?? shell实际上是基于字符串的程序设计语言,
也具有变量。变量的名字必须以字母或下划线 开头,可以包括字母、数字与下划线。 ?f?? shell变量能够而且只能存储正文字符串, 即它只有一种类型的变量——串变量。 ?f?? 从赋值的形式上看,则可以分成四种类型 的变量或变量形式。 f? shell有两种变量:环境变量与临时变量。环境变量:永久变量
???????????????????? 用户自定义变量 ??????????????????????? 位置参数 ?6.2.1? 用户定义的变量 f?语法格式:变量名=字符串 f?在程序中使用变量时,要在变量名前加一个符号“$” ?f赋值号“=”两边不允许有空白符; ??? nodehost="beijing.uucp ” ??? path=/bin:/usr/bin:/etc/bin ??? count=10 ?f 允许多个赋值操作,按从右到左的顺序进行; ??? # a=$b? b=abc? c="ok" ??? # echo $a $b $c ?????????? abc abc ok ??f 当引用一个未设置的变量时,其隐含值为空;
??? # echo? "$mail is path of mailbox” ????????? is path of mailbox f 如果用双引号“”将值括起来,则括起来的 字符串允许出现空格、制表符与换行符的特殊字 符,而且允许有变量替换。? ?? 例1:# mail=/var/mail/fk ???????????? # var="$mail is a path of mailbox" ???????????? # echo $var ???????? /var/mail/fk is a path of mailbox ??例2:# str="this is \n a book"
???????????? # echo $str ???????????? this is ?????????????? a book ?f 如果用单引号‘’将值括起来,则括起来的字符串允许出现空格、制表符与换行符的特殊字符,但不允许有变量替换。?? 例1? # book="english book" ?????????? # msg=´$book´ ?????????? # echo $msg ??????????? $book??? ?? 例2?? # msg=´ today is \t sunday´ ?????????? # echo $msg ?????????? today is???????? sunday... 下一页