OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4267|回复: 0

Linux Shell系列教程之(九)Shell判断 if else 用法

[复制链接]

132

主题

340

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1036
金钱
1036
注册时间
2017-10-30
在线时间
163 小时
发表于 2018-9-3 14:20:03 | 显示全部楼层 |阅读模式
  if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。
  Shell 有三种 if else格式:
  if ... fi 格式
  if ... else ... fi 格式
  if ... elif ... else ... fi 格式
  下面我就分别就这几种格式来为大家详细介绍下。
  一、Shell判断语法之if ... else 格式
  if ... else 格式的语法:
  if [ expression ]
  then
  Statement(s) to be executed if expression is true
  fi
  说明:
  如果 expression 返回 true,then 后边的语句将会被执行;
  如果返回 false,不会执行任何语句。
  最后必须以 fi 来结尾闭合 if,fi 就是 if 倒过来拼写,后面也会遇见。
  注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。
  使用举例:
  #!/bin/sh
  a=400
  b=800
  if [ $a == $b ]
  then
  echo "a is equal to b"
  fi
  if [ $a != $b ]
  then
  echo "a is not equal to b"
  fi
  运行结果:
  a is not equal to b
  二、Shell判断语法之 if ... else ... fi 格式
  if ... else ... fi 语句的语法
  if [ expression ]
  then
  Statement(s) to be executed if expression is true
  else
  Statement(s) to be executed if expression is not true
  fi
  说明:
  如果 expression 返回 true,那么 then 后边的语句将会被执行;
  否则的话,将会执行 else 后边的语句。
  使用举例:
  #!/bin/sh
  a=400
  b=800
  if [ $a == $b ]
  then
  echo "a is equal to b"
  else
  echo "a is not equal to b"
  fi
  执行结果:
  a is not equal to b
  三、Shell判断语法之if ... elif ... fi格式
  if ... elif ... fi 语句可以对多个条件进行判断
  语法:
  if [ expression 1 ]
  then
  Statement(s) to be executed if expression 1 is true
  elif [ expression 2 ]
  then
  Statement(s) to be executed if expression 2 is true
  elif [ expression 3 ]
  then
  Statement(s) to be executed if expression 3 is true
  else
  Statement(s) to be executed if no expression is true
  fi
  说明:
  哪一个 expression 的值为 true,就执行哪个 expression 后面的语句;
  如果都为 false,那么不执行任何语句。
  使用举例:
  #!/bin/sh
  a=400
  b=800
  if [ $a == $b ]
  then
  echo "a is equal to b"
  elif [ $a -gt $b ]
  then
  echo "a is greater than b"
  elif [ $a -lt $b ]
  then
  echo "a is less than b"
  else
  echo "None of the condition met"
  fi
  运行结果:
  a is less than b
  四、其他说明
  if ... else 语句也可以写成一行,以命令的方式来运行,像这样:
  if test $[2*3] -eq $[1+5]; then echo 'The two numbers are equal!'; fi;
  if ... else 语句也经常与 test 命令结合使用,如下所示:
  num1=$[2*3]
  num2=$[1+5]
  if test $[num1] -eq $[num2]
  then
  echo 'The two numbers are equal!'
  else
  echo 'The two numbers are not equal!'
  fi
  输出:
  The two numbers are equal!
  test 命令用于检查某个条件是否成立,与方括号([ ])类似。
  linux学习交流群:690327559
  linux免费学习课程 :http://www.makeru.com.cn/course/details/1937?s=26056
  http://www.makeru.com.cn/course/details/2058?s=26056
  http://www.makeru.com.cn/course/details/2478?s=26056

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表