基本信息
文件名称:linux基础-15shell编程-分支语句+课件.pptx
文件大小:63.86 KB
总页数:13 页
更新时间:2025-05-26
总字数:约2.74千字
文档摘要

shell编程-分支语句

课程目录条件语句多路分支语句

3结构性语句结构性语句主要根据程序的运行状态、输入数据、变量的取值、控制信号以及运行时间等因素来控制程序的运行流程。主要包括:条件测试语句(两路分支)、多路分支语句、循环语句、循环控制语句和后台执行语句等。

4条件语句if…then…fi语法结构:if表达式 then命令表fi如果表达式为真,则执行命令表中的命令;否则退出if语句,即执行fi后面的语句。if和fi是条件语句的语句括号,必须成对使用;命令表中的命令可以是一条,也可以是若干条。

5复习-文件测试-dname测试name是否为一个目录-ename测试一个文件是否存在-fname测试name是否为普通文件-Lname测试name是否为符号链接-rname测试name文件是否存在且为可读-wname测试name文件是否存在且为可写-xname测试name文件是否存在且为可执行-sname测试name文件是否存在且其长度不为0f1-ntf2测试文件f1是否比文件f2更新f1-otf2测试文件f1是否比文件f2更旧

6实例shell程序prog2.sh(测试命令行参数是否为已存在的文件或目录)。用法为:./prog2.shfile代码如下:#Thestatementofif…then…fi(注释语句)if[-f$1](测试参数是否为文件)then echoFile$1exists(引用变量值)fiif[-d$HOME/$1](测试参数是否为目录)then echoFile$1isadirectory(引用变量值)fi

7实例执行prog2程序:$./prog2.shprog1.shFileprog1.shexists$0为prog2.sh;$1为prog1.sh,是一个已存在的文件.$./prog2.shbackupFilebackupisadirectory$0为prog2.sh;$1为backup,是一个已存在的目录.如果不带参数,或大于一个参数运行prog2,例如:$./prog2.sh(或$./prog2.shfile1file2)会出现什么结果?

8条件语句if…then…else…fi语法结构为:if表达式then命令表1else命令表2fi如果表达式为真,则执行命令表1中的命令,再退出if语句;否则执行命令表2中的语句,再退出if语句.注意:无论表达式是否为真,都有语句要执行.

9test命令的使用test命令测试的条件成立时,命令返回值为真(0),否则返回值为假(非0).test$name-eq$1echo$?方式1iftest-f$filenamethen……fi方式2if[-f$filename]then……fi方式3用方括号替代test语句至少一个空格至少一个空格

10实例例子:shell程序prog3.sh,用法为:./prog3.shfile内容如下:#Thestatementofif…then…else…fiif[-d$1]then echo$1isadirectory exit(退出当前的shell程序)else if[-f$1] then echo$1isacommonfile else echounknown fifi

11实例运行prog3.sh程序:$./prog3.shbackupbackupisadirectory$./prog3.shprog1prog1isacommonfile$./prog3.shabcunknownprog3.sh是对prog2.sh的优化,逻辑结构更加清晰合理!

12多路分支语句case…esac