文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Shell if else语句的用法是什么

2023-06-09 11:49

关注

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

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

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

if 语句

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

if conditionthen  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/bashread aread bif (( $a == $b ))then  echo "a和b相等"fi

运行结果:
84↙
84↙
a和b相等

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

实例2

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

#!/bin/bashread ageread iqif (( $age > 18 && $iq < 60 ))then  echo "你都成年了,智商怎么还不及格!"  echo "来C语言中文网(http://c.biancheng.net/)学习编程吧,能迅速提高你的智商。"fi

运行结果:
20↙
56↙

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

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

if else 语句

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

if conditionthen  statement1else  statement2fi

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

举个例子:

#!/bin/bashread aread bif (( $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 condition1then  statement1elif condition2then  statement2elif condition3then  statement3……else  statementnfi

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

整条语句的执行逻辑为:

举个例子,输入年龄,输出对应的人生阶段:

#!/bin/bashread ageif (( $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/bashprintf "Input integer number: "read numif ((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语句的用法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯