if-else笔记
- 简单if结构
- 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条件,则执行下面这些命令...command
elsecommand ##不满足#expression1条件,则执行下面这些命令...command
fi