加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

详解Shell if else语句的具体使用方法

发布时间:2022-11-03 12:53:23 所属栏目:Linux 来源:
导读:  这篇文章主要介绍了详解Shell if else语句的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  和其它编程语言类
  这篇文章主要介绍了详解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是判断条件linux语句,如果 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 < 60 ))
  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。
 
  整条语句的执行逻辑为:
 
  举个例子,输入年龄,输出对应的人生阶段:
 
  #!/bin/bash
  linux语句_linux if嵌套语句_linux if语句
 
 
  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语句的具体使用方法的文章就介绍到这了,更多相关Shell if else语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!