Linux if else语句的使用,Shell if else语句的用法是什么

Shell if else语句的用法是什么

发布时间:2021-03-15 11:06:10

来源:亿速云

阅读:70

作者:TREX

本篇内容介绍了“Shell if else语句的用法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

和其它编程语言类似,Shell 也支持选择结构,并且有两种形式,分别是 if else 语句和 case in 语句。本节我们先介绍 if else 语句,case in 语句将会在《Shell case in》中介绍。

如果你已经熟悉了C语言、Java、JavaScript 等其它编程语言,那么你可能会觉得 Shell 中的 if else 语句有点奇怪。

if 语句

最简单的用法就是只使用 if 语句,它的语法格式为:if condition

then

statement(s)

fi

condition是判断条件,如果 condition 成立(返回“真”),那么 then 后边的语句将会被执行;如果 condition 不成立(返回“假”),那么不会执行任何语句。

从本质上讲,if 检测的是命令的退出状态,我们将在下节《Shell退出状态》中深入讲解。

注意,最后必须以fi来闭合,fi 就是 if 倒过来拼写。也正是有了 fi 来结尾,所以即使有多条语句也不需要用{ }包围起来。

如果你喜欢,也可以将 then 和 if 写在一行:if condition; then

statement(s)

fi

请注意 condition 后边的分号;,当 if 和 then 位于同一行的时候,这个分号是必须的,否则会有语法错误。

实例1

下面的例子使用 if 语句来比较两个数字的大小:#!/bin/bash

read a

read b

if (( $a == $b ))

then

echo "a和b相等"

fi运行结果:

84↙

84↙

a和b相等

在《Shell (()) 》一节中我们讲到,(())是一种数学计算命令,它除了可以进行最基本的加减乘除运算,还可以进行大于、小于、等于等关系运算,以及与、或、非逻辑运算。当 a 和 b 相等时,(( $a == $b ))判断条件成立,进入 if,执行 then 后边的 echo 语句。

实例2

在判断条件中也可以使用逻辑运算符,例如:#!/bin/bash

read age

read iq

if (( $age > 18 && $iq 

then

echo "你都成年了,智商怎么还不及格!"

echo "来C语言中文网(http://c.biancheng.net/)学习编程吧,能迅速提高你的智商。"

fi运行结果:

20↙

56↙

&&就是逻辑“与”运算符,只有当&&两侧的判断条件都为“真”时,整个判断条件才为“真”。

熟悉其他编程语言的读者请注意,即使 then 后边有多条语句,也不需要用{ }包围起来,因为有 fi 收尾呢。

if else 语句

如果有两个分支,就可以使用 if else 语句,它的格式为:if condition

then

statement1

else

statement2

fi

如果 condition 成立,那么 then 后边的 statement1 语句将会被执行;否则,执行 else 后边的 statement2 语句。

举个例子:#!/bin/bash

read a

read b

if (( $a == $b ))

then

echo "a和b相等"

else

echo "a和b不相等,输入错误"

fi运行结果:

10↙

20↙

a 和 b 不相等,输入错误

从运行结果可以看出,a 和 b 不相等,判断条件不成立,所以执行了 else 后边的语句。

if elif else 语句

Shell 支持任意数目的分支,当分支比较多时,可以使用 if elif else 结构,它的格式为:if condition1

then

statement1

elif condition2

then

statement2

elif condition3

then

statement3

……

else

statementn

fi

注意,if 和 elif 后边都得跟着 then。

整条语句的执行逻辑为:如果 condition1 成立,那么就执行 if 后边的 statement1;如果 condition1 不成立,那么继续执行 elif,判断 condition2。

如果 condition2 成立,那么就执行 statement2;如果 condition2 不成立,那么继续执行后边的 elif,判断 condition3。

如果 condition3 成立,那么就执行 statement3;如果 condition3 不成立,那么继续执行后边的 elif。

如果所有的 if 和 elif 判断都不成立,就进入最后的 else,执行 statementn。

举个例子,输入年龄,输出对应的人生阶段:#!/bin/bash

read age

if (( $age <= 2 )); then

echo "婴儿"

elif (( $age >= 3 && $age <= 8 )); then

echo "幼儿"

elif (( $age >= 9 && $age <= 17 )); then

echo "少年"

elif (( $age >= 18 && $age <=25 )); then

echo "成年"

elif (( $age >= 26 && $age <= 40 )); then

echo "青年"

elif (( $age >= 41 && $age <= 60 )); then

echo "中年"

else

echo "老年"

fi运行结果1:

19

成年

运行结果2:

100

老年

再举一个例子,输入一个整数,输出该整数对应的星期几的英文表示:#!/bin/bash

printf "Input integer number: "

read num

if ((num==1)); then

echo "Monday"

elif ((num==2)); then

echo "Tuesday"

elif ((num==3)); then

echo "Wednesday"

elif ((num==4)); then

echo "Thursday"

elif ((num==5)); then

echo "Friday"

elif ((num==6)); then

echo "Saturday"

elif ((num==7)); then

echo "Sunday"

else

echo "error"

fi运行结果1:

Input integer number: 4

Thursday

运行结果2:

Input integer number: 9

error

“Shell if else语句的用法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值