2023年8月2日发(作者:)
linux脚本if判断o,bashShell中如何实现条件判断之if判断bash中如何实现条件判断?条件测试类型:整数测试字符测试⽂件测试⼀、条件测试的表达式:[ expression ] 括号两端必须要有空格[[ expression ]] 括号两端必须要有空格test expression组合测试条件:-a: and-o: or!: ⾮⼆、整数⽐较:-eq 测试两个整数是否相等-ne 测试两个整数是否不等-gt 测试⼀个数是否⼤于另⼀个数-lt 测试⼀个数是否⼩于另⼀个数-ge ⼤于或等于-le ⼩于或等于命令间的逻辑关系逻辑与:&&第⼀个条件为假 第⼆个条件不⽤在判断,最总结果已经有第⼀个条件为真,第⼆个条件必须得判断逻辑或:||三、字符串⽐较字符串⽐较:== 等于 两边要有空格!= 不等> ⼤于四、⽂件测试-z string 测试指定字符是否为空,空着真,⾮空为假-n string 测试指定字符串是否为不空,空为假 ⾮空为真-e FILE 测试⽂件是否存在-f file 测试⽂件是否为普通⽂件-d file 测试指定路径是否为⽬录-r file 测试⽂件对当前⽤户是否可读-w file 测试⽂件对当前⽤户是否可写-x file 测试⽂件对当前⽤户是都可执⾏-z 是否为空 为空则为真-a 是否不空五、if语法if 判断条件 0为真 其他都为假单分⽀if语句if 判断条件;fi双分⽀的if语句:if 判断条件;lsestatement3statement4fiNote:if语句进⾏判断是否为空[ "$name” = "" ]等同于[ ! "$name" ][ -z "$name" ]Note:使⽤if语句的时候进⾏判断如果是进⾏数值类的 ,建议使⽤ let(())进⾏判断对于字符串等使⽤test[ ] or [[ ]] 进⾏判断(())中变量是可以不使⽤$来引⽤的example:表述数字范围的时候 可以使⽤if可以是使⽤caseif [ $x -gt 90 -o $x -lt 100 ]case $x in100)9[0-9])if [ "X$name" != "x" ]这个语句的意思是如果$name为空,那么X=X成⽴折执⾏下⾯的结果;写脚本的时候很多时候需要⽤到回传命令,$?如果上⼀个命令执⾏成功,回传值为0,否则为1~255之间的任何⼀个0为真⾮0为假条件测试的写法:1、 执⾏⼀个命令的结果if grep -q "rm" ;then2、传回⼀个命令执⾏结果的相反值if !grep -q "rm" ;then3、使⽤复合命令((算式))if ((a>b));then4、使⽤bash关键字 [[判断式]]if [[ str > xyz ]];then5、使⽤内置命令:test 判断式if test "str" > "xyz";then6、使⽤内置命令:[判断式] 类似testif [ "str" > "xyz" ];then7、使⽤-a -o进⾏逻辑组合[ -r filename -a -x filename ]8、命令&&命令if grep -q "rm" && [ $a -lt 100 ];then9、命令||命令if grep -q "rm" || [ $a -lt 100 ];then⽰例脚本(写⼀段脚本,输⼊⼀个测验成绩,根据下⾯的标准,输出他的评分成绩(A-F)。A: 90–100B: 80–89C: 70–79D: 60–69F: <60)#/bin/bash#Verson:0.1#Auther:lovelace#Pragram:This pragram is calculation your grade#import an argumentread -p "Please input your grade:" xdeclare -i x#jugemet $x value is none or notif [ "$x" == "" ];thenecho "You don't input "exit 5fi#jugement the gread levelif [[ "$x" -ge "90" && "$x" -le "100" ]];thenecho "Congratulation,Your grade is A."elif [[ "$x" -ge "80" && "$x" -le "89" ]];thenecho "Good,Your grade is B."elif [[ "$x" -ge "70" && "$x" -le "79" ]];thenecho " grade is C."elif [[ "$x" -ge "60" && "$x" -le "69" ]];thenecho "Yeah,Your grade is D."elif [[ "$x" -lt "60" ]];thenecho "Right,Your grade is F."elseecho ""fibash中的case whenlinux中有和java中类似的case when条件,⼀看下⾯的代码就知道#!/bin/bashecho 'Input a number:'read Numcase $Num in1)echo "You select 1";;2)echo "You select 2";;3)echo "You select 3";;4|5)echo "You select 4or5";;*)echo "default";;esac#!/bin/bash####输⼊1===输出10case $1 in1)echo "您输⼊的是1";;10)echo "您输⼊的是10";;100)echo "您输⼊的是100";;*)echo "您输⼊不正确哟";;esac1.条件xx)注意单括号2.⼀个条件结束了⽤双的分号3.最终退出⽤esac
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690917972a463183.html
评论列表(0条)