判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外。今天就给大家介绍下Shell判断语句 if else 用法。

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 命令用于检查某个条件是否成立,与方括号([ ])类似。

好了,今天对于Shell判断(Shell if else)用法就先为大家介绍到这里,还是那句话,大家要多多练习才是。

linux shell嵌套if else,Linux Shell系列教程之(九)Shell判断 if else 用法相关推荐

  1. Exchange server 2010系列教程之九 配置exchange server 2010 OWA(3)

    Exchange server 2010系列教程之九 配置exchange server 2010 OWA(3) 前面俩节说了owa的登录和webmail的简化,以及SSO的实现.下面大家看看这个网站 ...

  2. PVE系列教程(十九)、ubuntu22.04使用Nginx配置chevereto服务器

    PVE系列教程(十九).ubuntu22.04使用Nginx配置chevereto服务器 为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一.环 ...

  3. CAD插件学习系列教程(九) 简单好用的CAD图层管理工具

    我是王石头,不知不觉,这已是CAD插件学习系列教程的第九篇了,这次推荐一款非常好用的CAD图层管理工具. 众所周知,在CAD制图时,掌握CAD图层的快速开关是提升制图速度的关键,一个CAD制图高手和一 ...

  4. ComicEnhancerPro 系列教程十九:用JpegQuality看JPG文件的压缩参数

    作者:马健 邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十九:用JpegQ ...

  5. Linux (x86) Exploit 开发系列教程之九 使用 unlink 的堆溢出

    使用 unlink 的堆溢出 译者:飞龙 原文:Heap overflow using unlink 预备条件: 理解 glibc malloc 这篇文章中,让我们了解如何使用 unlink 技巧成功 ...

  6. Linux终端嵌套桌面里,linux下终端分屏使用的两种方法(screen和tmux)

    本文主要介绍两种终端分屏工具:screen和tmux,分享出来供大家参考学习,下面来看看详细的介绍: 一.使用screen分屏(只能上下分屏,不能左右分屏) (1)安装工具 在ubuntu系统中使用s ...

  7. 掌上实验室V8系列教程(九)光电编码器转速测量

    1 项目功能 通过光电编码器进行转速测量 2 光电编码器工作原理 光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器.这是应用最多的传感器,光电编码器是由光源.光码盘和 ...

  8. Java NIO系列教程(九) ServerSocketChannel

    Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.ServerSocketChannel类在 jav ...

  9. twisted系列教程十九–cancel deferred

    Introduction twisted 是一个正在发展的项目,twisted 的开发者们会添加一些新的特色或者扩展旧的.随着twisted 10.1.0 的发布,开发者们增加了一个新的功能–取消,这 ...

最新文章

  1. Docker下部署mysql
  2. python写小程序-你用python写过那些好玩的微信小程序?
  3. 防止stack buffer overflows攻击的方法 : Canary 漏洞缓解机制
  4. ORACLE会话以及SQL执行信息查询
  5. VC++ .net 2005运行库解析
  6. fsck 修复文件系统_微软推出Win10 20H2 Build 19042.608测试版 修复多种已知错误
  7. oracle统计信息
  8. CSS3渐变——线性渐变
  9. 不管是蓝牙耳机还是有线耳机长时间佩戴都是有危害的,这些问题不容小觑!
  10. 有限元法 有限差分法 有限体积法
  11. SIM卡在手机中的主要作用
  12. 基于QT实现的alpha-beta剪枝算法搜索的象棋人机博弈游戏
  13. Dijkstra算法总结
  14. Lifecycle 使用与源码分析
  15. 最后冲刺:第三届全国人工智能大赛决赛战报
  16. 小程序Cannot read property 'elem' of undefined
  17. ubuntu openjdk6 无法编译java程序_无法在Ubuntu上运行Java GUI程序
  18. yum仓库配置文件详解
  19. 助力高速智能化管理,交通视联网一体机识破逃费“诡计”
  20. bootstrap栅格布局之花样样式布局

热门文章

  1. 关于使用字库-雅黑字体(msyh.ttf )显示中文的一些。。。
  2. 下载网页视频的方法:网站视频下载方法技术分享 或者用遨游5浏览器(下载视频)...
  3. 光阴的故事,感怀青春
  4. 二进制除法移位相减_在汇编除法中:移位相减是怎么样的原理啊,程序看了几天了还是看不懂,哪位兄弟告诉我,本人感激涕零...
  5. 网曝支付宝漏洞:手机丢了,支付宝也就完了
  6. Linux quota
  7. 【考研高数-高等数学-基础】第三章 微分中值定理及导数应用
  8. 志强系列的服务器能吃鸡吗,国产高端 浪潮四路四核服务器产品解析
  9. 2023年,产业互联网八大趋势
  10. 局域网、广域网和因特网