第8讲Shell程序设计_第1页
第8讲Shell程序设计_第2页
第8讲Shell程序设计_第3页
第8讲Shell程序设计_第4页
第8讲Shell程序设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8讲 Shell程序设计Shell的含义Shell 既是一种命令语言,又是一种程序设计语言作为命令语言,它交互式地解释和执行用户输入的命令作为程序设计语言,它定义了各种变量和参数,并提供了在高级语言中才有的控制结构,如循环和分支。目前流行的Shellash:Linux中占用资源最少的一个小一个小Shell,它,它只包含只包含24个内部命令个内部命令bash: Linux系统默认的Shell,包含,包含40个内部个内部命令命令ksh:与商业发行版的ksh兼容,包含,包含42个内部个内部命令命令csh:是 Linux比较大的内核,共包含,共包含52个内部个内部命令命令zsh:是 Linux最大的

2、Shell之一,共包含之一,共包含84个内个内部命令,若没有特殊用途,没有必要安装。部命令,若没有特殊用途,没有必要安装。Shell基本语法输入输出重定向l“” 输出重定向到一个文件l“” 输出追加到一个文件l“ 输出重定向操作符输出重定向操作符 输出重定向操作符输出重定向操作符添加到文件添加到文件 跟在输入结束自符串后(跟在输入结束自符串后(HERE)操作符)操作符 列出字符的范围列出字符的范围 a-z 意指意指a到到z的全部字符的全部字符 a,z 意指意指a或或z字符字符 .filmname 执行执行(“源源”)filename文件文件 空格空格 在两个字之间的间隔符在两个字之间的间隔符特

3、殊字符特殊字符反斜杠反斜杠 在某个字符前利用反斜杠可以阻止在某个字符前利用反斜杠可以阻止shell把后面的字符解释为特把后面的字符解释为特殊字符。例如,把殊字符。例如,把$test的值赋给变量的值赋给变量var。输入如下命令:。输入如下命令: var =$test 存放在存放在var中的值将是一个空值;如下命令才把中的值将是一个空值;如下命令才把$test存放在存放在var中:中: var=$test 反引号反引号 通知通知shell 执行由反引号定义的字符串。当需要把执行命执行由反引号定义的字符串。当需要把执行命令的结果存放在变量中时,就可以在令的结果存放在变量中时,就可以在shell程序中

4、利用反引号。程序中利用反引号。例如,要统计当前目录下一个文件中例如,要统计当前目录下一个文件中test.txt有几行并把结果有几行并把结果存在叫做存在叫做var的变量中:的变量中: var=wc -l test.txt pdksh和和bash环境环境Shell 程序设计流程控制程序设计流程控制bash表达式的比较表达式的比较1.字符串比较字符串比较 = 比较两个字符串是否相等比较两个字符串是否相等 != 比较两个字符串是否不相等比较两个字符串是否不相等 -n 判断字符长度是否大于零判断字符长度是否大于零 -z 判断字符长度是否等于零判断字符长度是否等于零bash表达式的比较表达式的比较2数字比

5、较数字比较 -eq 比较两个数是否相等比较两个数是否相等 - ge 比较一个数是否大于或是等于另一个数比较一个数是否大于或是等于另一个数 -le 比较一个数是否小于或是等于另一个数比较一个数是否小于或是等于另一个数 -ne 比较两个数是否不等比较两个数是否不等 -gt 比较一个数是否大于另一个数比较一个数是否大于另一个数 -lt 比较一个数是否小于另一个数比较一个数是否小于另一个数bash表达式的比较表达式的比较3文件操作符文件操作符 -d 确定文件是否为目录确定文件是否为目录 -f 确定文件是否为普通文件确定文件是否为普通文件 -r 确定是否对文件设置了读许可。确定是否对文件设置了读许可。

6、-s 确定文件名是否具有大于零的长度确定文件名是否具有大于零的长度 -w 确定文件是否设置了写许可确定文件是否设置了写许可 -x 确定文件是否设置了执行许可确定文件是否设置了执行许可bash表达式的比较表达式的比较4.逻辑操作符逻辑操作符 逻辑操作符用来根据逻辑规则比较表达式。逻辑操作符用来根据逻辑规则比较表达式。 !,-a,-o字符表示字符表示NOT 、AND和和OR ! 求反(求反(”非非”)逻辑表达式)逻辑表达式 -a 逻辑逻辑AND(”与与 ”)两个逻辑表达式)两个逻辑表达式 -o 逻辑逻辑OR(”或或 ”)两个逻辑表达式)两个逻辑表达式 循环语句循环语句for语句语句第一种格式如下:

7、第一种格式如下: for curvar in list do statements done 对对list中的每个值需中的每个值需要执行一次要执行一次statements时应利用时应利用这种格式。对每次这种格式。对每次循环,把循环,把list中的当中的当前值赋给变量前值赋给变量vcurvar. List可以使可以使含有几个项的变量,含有几个项的变量,或是用空格分隔的或是用空格分隔的值表。值表。For语句的这语句的这种格式是由种格式是由pdksh和和bash使用的。使用的。循环语句循环语句1.for语句语句 假设需要把目录中的每个文件在一个叫假设需要把目录中的每个文件在一个叫做做backup的子目录中建立备份,可以在的子目录中建立备份,可以在bash 中中执行如下的程序:执行如下的程序: mkdir backup for file in *.c do cp $file backup/$file done 执行后把当前目录下的.c为后缀的文件拷贝到子目录backup下人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论