GNULinux编程课件第4章.ppt_第1页
GNULinux编程课件第4章.ppt_第2页
GNULinux编程课件第4章.ppt_第3页
GNULinux编程课件第4章.ppt_第4页
GNULinux编程课件第4章.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 Shell程序设计,郑谦益、韩京宇,内容提要,Shell 概述 Shell脚本的定义与执行 Shell变量 输入和输出 Shell中的引号 条件表达式 控制语句 函数,Shell 概述,概念 Shell的概念是源自Unix的命令解释器。Shell不仅可解释用户输入的命令,同时,可解释执行基于命令的脚本语言。 Shell的分类 (1) sh (2) csh (3) ksh (4) bash,Shell脚本,#!/bin/bash # script4-1.sht var1=welcome to use Shell script echo $var1 pwd ls -i,2. Shell脚本

2、的执行方法,(1) 添加可执行权 $ chmod u+x demo.sh # 给demo.sh增加可执行权 $ ./demo.sh # 直接运行 (2) 指定Shell命令 $ bash demo.sh # 指定由bash解释执行,Shell脚本的解析过程,Shell变量,Shell变量的分类 用户自定义变量 2. 环境变量 3. 位置变量 4. 预定义变量,用户自定义变量,语法 变量名=变量值 语义 将变量值赋给变量变量名。 变量的引用 $变量名 清除变量的内容: unset 变量名 查看变量的值 set,环境变量,环境变量又称全局变量,通常,由系统在启动时设置,环境变量一般用大写字母表示,

3、 输出用户自定义变量为环境变量 语法 export 用户自定义变量 语义 将用户自定义变量输出为环境变量。,Linux系统中的环境变量,全局性系统环境变量,环境变量一般定义在系统启动相关的配置文件中 bash shell全局性系统环境变量的资源文件 /etc/rc /etc/bashrc /etc/profile,用户定制的系统环境变量 /.bashrc /.bash_profile,用户定制的系统环境变量,用户1 /.bash_profile /.bashrc,用户2 /.bash_profile /.bashrc,用户3 /.bash_profile /.bashrc,/etc/profi

4、le、/etc/profile.d/*,位置变量,预定义变量,命令替换,语法一 var=$(command) 语法二 var=command 功能 将command命令的运行结果赋给变量var。,输入和输出,read命令 语法 read 选项 变量名列表 功能 从键盘上读取变量的值 echo命令 语法 echo 选项 字符串 功能 显示字符串或变量的值,echo命令选项,echo命令的转义符,实例分析,# 从键盘读取一个字符,不回显 $ read -s -n1 -p Yes (Y) or not (N)? answer # 输入变量var1和var2 $ read var1 var2 # 2行

5、3列显示 $ echo -e atbtcndtetf abc def,Shell中的引号,引号的分类 1. 反引号 反引号用于命令替换 2. 单引号 在一对单引号中的所有字符(包括元字符),保留原有字符的含义,其中不能包含单引号。 3. 双引号 在一对双引号中的字符(包括元字符),除了美元符$、反引号和反斜杠外,其余均保留原来字符的含义。,实例分析,显示字符* $ echo * 不进行变量替换 $ text=* means all files $ echo $text 反斜杠为转义符 $ echo $dlist $dlist 不加双引号与加双引号的比较 $ x=* $ echo $x # 显示

6、当前目录下的所有文件 $ echo $x # 仅显示变量x的值*,Shell 控制语句,条件语句 分枝语句 循环语句 函数,使用test命令 语法: 使用括号 语法: 条件表达式的值为真返回零,为假时返回非零值,test 条件表达式, 条件表达式 ,条件测试,文件状态操作符,字符串操作符,数字操作符,逻辑操作符,命令分隔符,条件语句,语法一 if 条件表达式 then 命令序列1 else 命令序列2 fi 语义 当条件表达式的测试值为真时,执行命令序列1,否则,执行命令序列2。命令序列中的命令可以是一个或者多个。,条件语句,语法二 if 条件表达式 ; then 命令序列 fi 语义 当条件

7、表达式的测试值为真时,执行命令序列,否则,执行条件语句后面的命令。条件表达式与then之间的分号;起命令分隔符的作用。,条件语句,语法形式三 if test 条件表达式1 then 命令序列1 elif 条件表达式2 then 命令序列2 . else 命令序列3 fi 语义 这是包含二层嵌套的条件语句,当条件表达式1为真时,执行命令序列1,否则,在条件表达式2为真的情况下,执行命令序列2,否则,执行命令序列3,命令序列3属于第2个条件语句的一部分。,实例分析,#!/bin/bash # script4-2.sh echo Enter a file name: read file if -f

8、$file then echo File $file exists. fi,实例分析,#!/bin/sh # script4-4.sh echo Enter the first integer: read first echo Enter the second integer: read second if $first -gt $second then echo $first is greater than $second elif $first -lt $second then echo $first is less than $second else echo $first is equ

9、al to $second fi,case语句,语法 case 变量 in 值1) 命令序列1 ; 值2) 命令序列2 ; . 值n) 命令序列n ; esac 语义 当变量的值为值1时,执行命令序列1,当变量的值为值2时,执行命令序列2,依此类推,需注意的是:在每个命令序列后面,需要用;作为结束标记。,实例分析,#!/bin/bash # script4-6.sh hour = date +%H case $hour in 01-9 | 101 ) echo Good morining ! ; 12-7 ) echo Good afternoon ! ; * ) echo Good even

10、ing ! ; esac,for语句,语法 for 变量名 in 参数列表 do 命令列表 done 语义 将参数列表中的元素依次赋给变量名,在每次赋值后执行命令列表,参数列表表示变量名的取值范围。,实例分析,#!/bin/bash # script4-8.sh smallest=10000 for i in 12 5 18 58 -3 80 do if test $i -lt $smallest then smallest=$i fi done echo The smallest number is: $smallest,实例分析,#!/bin/sh # script4-12.sh for i in * do cat $i | pr #输出重定向到打印机 done,while语句,语法 while 条件表达式 do 命令列表 done 语义 循环执行命令列表中的命令,直至条件表达式的值为假。,实例分析,#!/bin/bash # script4-13.sh i=1 sum=0 while $i -le 100 do sum=expr $sum + $i i=expr $i + 1 done echo The sum is $sum,函数,语法 函数名( ) 命令列表 return

温馨提示

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

最新文档

评论

0/150

提交评论