shell的if

编程入门 行业动态 更新时间:2024-10-28 10:27:24

<a href=https://www.elefans.com/category/jswz/34/1770778.html style=shell的if"/>

shell的if

if-else笔记

      • 简单if结构
      • if/else结构
      • if/elif/else 结构
      • if/else使用注意事项

if判断是shell编程中使用频率最高的语法结构

简单if结构

最简单的if执行结构如下所示:if expression				#expression 表示测试条件
thencommand						#满足expression后要执行的命令command...
f1

使用这种简单 if 结构时,要特别注意测试条件后如果没有:,则 then 语句要换行,否则会产生不必要的错误。如果 f和 then 处于同一行,则必须用;。

脚本1

#!/bin/bash
##filename:youok.sh
echo "Are you ok?"
read answer
if [[ $answer == [Yy]* || $answer == [Mm]aybe ]]    #没有";",then需要换行
then
echo "Glad to hear it."
fi

if 的条件判断部分使用了扩展的 test 语[[·]],[[]]中可以使用正则表达式进行条件匹配,脚本功能是读取输入内容
这个脚本提供了一个基本的用户互动,并根据他们的输入做出不同的回应。如果用户输入以 ‘Y’ 或 ‘y’ 开头,或者是 “maybe”,它将做出积极的回应。

[root@localhost tmp]# sh youok.sh 
Are you ok?
Y
Glad to hear it.[root@localhost tmp]# sh youok.sh 
Are you ok?
maybe
Glad to hear it.

脚本2

#!/bin/bashecho "你好!你今天心情如何?(请输入 '好' 或 '不好')"
read moodif [[ $mood == [好好]* ]]; thenecho "很高兴听到你心情不错!"
elif [[ $mood == [不不好]* ]]; thenecho "抱歉听到你心情不好,有什么我可以帮助你的吗?"
elseecho "我不太明白你的回答。"
fi

脚本会询问用户今天的心情如何,然后根据用户的回答做出不同的回应

[root@localhost tmp]# sh youok_1.sh 
你好!你今天心情如何?(请输入 '好' 或 '不好')
好
很高兴听到你心情不错!
[root@localhost tmp]# sh youok_1.sh 
你好!你今天心情如何?(请输入 '好' 或 '不好')
不好
抱歉听到你心情不好,有什么我可以帮助你的吗?
[root@localhost tmp]# sh youok_1.sh 
你好!你今天心情如何?(请输入 '好' 或 '不好')
?
我不太明白你的回答。

if/else结构

if/else 结构也是经常使用的,这个结构是双向选择语句,当用户执行脚本时如果不满足if后的表达式,就会执行 else 后的命令,所以有很好的交五性。其结构为:

if	expression1			#expression1表示测试条件
thencommand				#满足#expression1条件,则执行下面这些命令..mand
elsecommand				##不满足#expression1条件,则执行下面这些命令..mand
fi

#!/bin/bash
if [$# -eq 1]			#满足$# -eq 1会执行if-else嵌套语句,$#代表输入参数个数thenif who | grep ^$1>/dev/null		#判断then echo "$1 is active."else echo "$1 is not active."fielseecho "Usage:$0<username>"exit
fi

if/elif/else 结构

if/elif/else 结构用于更复杂的判断,它针对多个条件执行不同操作,语法结构如下:

if	expr1		##如果expr1条件成立(返回值为0)
then			#那么commands1	#执行语句块commands1
elif expr2		##若expr1条件不成立,而expr2条件成立
then			#那么commands2		#执行语句块commands2
......			#可以有多个elif语句,依次执行
else			#else 最多只能有一个commands4		#执行语句块commands4
fi				#if语句必须以单词 fi终止

#!/bin/bash
##filename:askage.sh
read -p "How old are you?" age		#通过read读取键盘输入,输入值赋值给age#使用shell算术运算符(())进行条件测试
if ((age < 0 || age > 120));then	#判断age范围,小于0或大于120,给超出范围提示echo "OUT of range!"exit 1
fi#使用多分支语句
if ((age>=0&&age<13));thenecho "child"
elif ((age>=13&&age<20));thenecho "callan"
elif ((age>=20&&age<30));thenecho "PIII"
elif ((age>=30&&age<40));thenecho "PIV"
elseecho "sorry i asked"
fi

if/else使用注意事项

1.if语句必须以if开头,以fi结束。
2.elif可以有任意多个(0个或多个)。
3.else 最多只能有一个(0个或1个)。
4mands为可执行语句块,如果为空,需使用shell提供的空命令:,即冒号。该命令不做任何事情,只返回一个退出状态0。
5.expr 通常为条件测试表达式;也可以是多个命令,以最后一个命令的退出状态为条件值。
6.if语句可以嵌套使用。

更多推荐

shell的if

本文发布于:2023-12-05 14:12:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1664463.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:shell

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!