Shell if else语句「建议收藏」

Shell if else语句「建议收藏」Shellifelse语句if语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell有三种if…else语句:if…fi语句; if…else…fi语句; if…elif…else…fi语句。1)if…else语句if…else语句的语法:if[expression…

大家好,又见面了,我是你们的朋友全栈君。

Shell if else语句

if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if … else 语句:

  • if … fi 语句;
  • if … else … fi 语句;
  • if … elif … else … fi 语句。

1) 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 和方括号([ ])之间必须有空格,否则会有语法错误。

举个例子:

  1. #!/bin/sh
  2.  
  3. a=10
  4. b=20
  5.  
  6. if [ $a == $b ]
  7. then
  8. echo “a is equal to b”
  9. fi
  10.  
  11. if [ $a != $b ]
  12. then
  13. echo “a is not equal to b”
  14. fi

运行结果:

a is not equal to b

2) 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 后边的语句。

举个例子:

  1. #!/bin/sh
  2.  
  3. a=10
  4. b=20
  5.  
  6. if [ $a == $b ]
  7. then
  8. echo “a is equal to b”
  9. else
  10. echo “a is not equal to b”
  11. fi

执行结果:

a is not equal to b

3) 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,那么不执行任何语句。

举个例子:

  1. #!/bin/sh
  2.  
  3. a=10
  4. b=20
  5.  
  6. if [ $a == $b ]
  7. then
  8. echo “a is equal to b”
  9. elif [ $a -gt $b ]
  10. then
  11. echo “a is greater than b”
  12. elif [ $a -lt $b ]
  13. then
  14. echo “a is less than b”
  15. else
  16. echo “None of the condition met”
  17. fi

运行结果:

a is less than b

if … else 语句也可以写成一行,以命令的方式来运行,像这样:

  1. if test $[2*3] -eq $[1+5]; then echo ‘The two numbers are equal!’; fi;

if … else 语句也经常与 test 命令结合使用,如下所示:

  1. num1=$[2*3]
  2. num2=$[1+5]
  3. if test $[num1] -eq $[num2]
  4. then
  5. echo ‘The two numbers are equal!’
  6. else
  7. echo ‘The two numbers are not equal!’
  8. fi

输出:

The two numbers are equal!

test 命令用于检查某个条件是否成立,与方括号([ ])类似。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157234.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql修改字段类型和长度

    sql修改字段类型和长度标准SQL修改字段类型和长度语句:ALTERTABLEtableNamemodifycolumncolumnName类型;例如Mysql的修改字段类型语句:altertabletestmodifycolumnnamevarchar(255);Oracle修改字段类型和长度语句:ALTERTABLEtableNamemodify(columnNa

    2022年6月12日
    102
  • 利用矩阵初等变换进行对角化

    利用矩阵初等变换进行对角化目录矩阵初等变换对角化证明矩阵初等变换记某矩阵为 其中为维度为 n 的行向量 则行初等变换有以下三种 1 交换两行的位置 2 3 同样的 对应的列初等变换就是把行向量换成列向量即可 为什么这些变换被称为矩阵的初等变换呢 或者说这些操作有什么特点呢 如果我们把矩阵看成一个多元一次齐次线性方程组的系数矩阵的话 那么很显然 这些操作并不会改变该方程组的解空间 即加入某个向量是变换前的解 那么一定也是变换后的解 反

    2025年7月3日
    0
  • 网易云音乐ncm格式如何转换为mp3_ncm文件转换mp3

    网易云音乐ncm格式如何转换为mp3_ncm文件转换mp3ncm格式就是网易云音乐会员身份下载的格式,套路和腾讯一样,会员过期了都听不了,需要你保持一直是会员;此篇文章是给大家安利的是一个在线批量转换ncm格式转为mp3的网站,使用起来非常简单。link:http://ncm.worthsee.com/1.准备好网易云ncm格式音频2.选择音乐,点击开始(shift多选)3.下载全部4….

    2022年9月27日
    1
  • Rancher部署报错状态一直restarting

    Rancher部署报错状态一直restarting

    2021年5月30日
    687
  • 常用网管工具_网管系统

    常用网管工具_网管系统1、ping(你懂的)2、df-h(查看磁盘使用情况)3、top(查看cpu使用情况,按“1”可以查看各个cpu详情)4、pstree(树形显示进程及同名进程的数量)5、vmstat[m][n](显示服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。间隔m秒钟显示一次,一共显示n次)6、nload(监视网络吞吐量)7、ps…|grep

    2022年10月6日
    0
  • 「建议收藏」Pycharm使用教程(非常详细,非常实用)「建议收藏」

    「建议收藏」Pycharm使用教程(非常详细,非常实用)「建议收藏」Pycharm使用教程1、Jetbrains家族和Pycharm版本划分:pycharm是Jetbrains家族中的一个明星产品,Jetbrains开发了许多好用的编辑器,包括Java编辑器(IntelliJIDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/macOS编辑器(AppCode)等。pycharm现在在官网[https://www.jetb

    2022年8月25日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号