Shell中的条件判断语句if~then~fi

Shell中的条件判断语句if~then~fi

2023年8月2日发(作者:)

Shell中的条件判断语句if~then~fi Shell中的条件判断语句是前⾯⼀篇“Shell中的条件测试语句”的升级篇,也就是说,前⾯的测试语句是为了现在的判断语句if~then~fi语句服务的。 我们还是按照注意点和代码实现的⽅式铺开:

1)基本的if-then-fi语句可以⽤来判断基本的单层的分⽀结构,其形式如下:其中if后⾯的测试语句⼀般都使⽤[]命令来做。如下⾯的例⼦:#-----------------------------/chapter4/------------------#! /bin/sh#使⽤条件测试判断/bin/bash是否是⼀个常规⽂件if [ -f /bin/bash ]; then

echo "/bin/bash is a file"fi 2)if-then-else-fi语句可以处理两层的分⽀判断语句。如下:#-----------------------------/chapter4/------------------#! /bin/sh#输出提⽰信息echo "Please enter a number:"#从键盘读取⽤户输⼊的数字read num#如果⽤户输⼊的数字⼤于10if [ "$num" -gt 10 ]; then #输出⼤于10的提⽰信息 echo "The number is greater than 10."#否则else #输出⼩于或者等于10的提⽰信息 echo "The number is equal to or less than 10."fi 3)-else-fi。这种语句可以实现多重判断,注意最后⼀定要以⼀个else结尾。如下:#-----------------------------/chapter4/------------------#! /bin/shecho "Please enter a score:"read scoreif [ -z "$score" ]; then echo "You enter enter a score:" read scoreelse if [ "$score" -lt 0 -o "$score" -gt 100 ]; then echo "The score should be between 0 and enter again:" read score else #如果成绩⼤于90 if [ "$score" -ge 90 ]; then echo "The grade is A." #如果成绩⼤于80且⼩于90 elif [ "$score" -ge 80 ]; then echo "The grade is B." #如果成绩⼤于70且⼩于80 elif [ "$score" -ge 70 ]; then echo "The grade is C." #如果成绩⼤于60且⼩于70 elif [ "$score" -ge 60 ]; then echo "The grade is D." #如果成绩⼩于60 else echo "The grade is E." fi fifi 4)要退出程序的时候,可以使⽤exit status语句。退出的状态status为0的时候,意味着脚本成功运⾏结束;⾮0表⽰程序执⾏过程出现某些错误,不同的错误对应着不同的退出状态。尽管⽤户可以⾃定义程序中的退出状态status,但是通常情况下每个status都有特定的含义,因此在⾃定义返回status的时候,⼀定要避免造成歧义。例⼦如下:01 #-----------------------------/chapter4/------------------02 #! /bin/sh03

04 #如果⽂件已经存在,则直接退出,⽂件名时输⼊的第⼀个参数05 if [ -e "$1" ]06 then07 echo "file $1 exists."08 exit 109 #如果⽂件不存在,则创建⽂件,使⽤touch来创建⽂件,也可以使⽤重定向来创建⽂件echo "Hello~" > ./ 即在当前⽬录下新建⼀个⽂件10 else11 touch "$1"12 echo "file $1 has been created."13 exit 014 fi 5)case-esac语句实现多重条件判断。如下: 注意:每⼀个变量内容的程序段最后都需要两个分号 (;;) 来代表该程序段落的结束;每个变量情况最后都要有)结尾;其余情况⽤*)来表⽰;最后要⽤esac来结束,即case反过来。#-----------------------------/chapter4/------------------#! /bin/sh#输出提⽰信息echo "Hit a key,then hit return."#读取⽤户按下的键read keypress#case语句开始case "$keypress" in #⼩写字母 [[:lower:]]) echo "Lowercase letter.";; #⼤写字母 [[:upper:]]) echo "Uppercase letter.";; #单个数字 [0-9]) echo "Digit.";; #其他字符 *) echo "other letter.";;esac 参考: 《鸟哥的Linux私房菜》 《Shell从⼊门到精通》

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690914165a462153.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信