bash shell的条件语句详解

 更新时间:2024年12月30日 10:02:56   作者:WongKyunban  
文章主要介绍了bash shell中的条件语句,包括if-then-fi、else、elif等结构的使用规则,以及条件判断符号(如-eq、-lt等)的正确使用方法,感兴趣的朋友一起看看吧
~ script% touch if.sh
~ script% chmod 755 if.sh

1.if-then-fi

#!/usr/bin/env bash
FOOD=$1
if [ $FOOD="apple" ]
then
	echo The food is $FOOD
fi
exit 0
~ script % ./if.sh apple
The food is apple

如果要将多条语句写在一行,可以分号分割开,如:

if [ $FOOD="apple" ];then

注意:
if [ 条件 ],中括号包住的条件与括号之间必须要有空格。if关键字与中括号之间也必须要有空格。为什么会这样, 因为命令与参数之间必须要用空格分开。[]中括号代表的量test这个命令,所以上面的if语句也可以写成:

if test $FOOD="apple"
then
        echo The food is $FOOD
fi

所以如果没有空格了,解析器就会找到一个错误或不存在的命令,因为它会把在每一行遇到的第一个空格前面有字符串的字符串当作是命令,之后的当作是参数。所以如果if和[]没有空格,执行脚本时就会报错,把if[ apple=apple ]都当作是命令了,而这实际上是一个不存在的命令:

~ script % ./if.sh apple
./if.sh: line 4: if[ apple=apple ]: command not found

温馨提示:赋值语句的等号左右不能有空格,否则会报错。

2.else子句

if.sh:

#!/usr/bin/env bash
NUM=$1
if [ $NUM -eq 10 ] # = 等价于-eq,后者只能用于数字的比较上,前者=,则在字符串和数字上都能用于相等的比较
then
        echo it is 10
else
        echo it is not 10
fi
exit 0
~ script % ./if.sh 109
it is not 10

3.elif子句

#!/usr/bin/env bash
NUM=$1
if [ $NUM -eq 10 ] # = 等于-eq,后者只能用于数字的比较上,前者则都可以用在字符串和数字的相等比较上
then
        echo equal 10
elif [ $NUM -lt 10 ]
then
        echo less than 10
elif [ $NUM -le 11 ]
then
        echo less than or equal 11
else
        echo greater than 11
fi
exit 0
~ script % ./if.sh 109
greater than 11

-eq:equal 等于-lt:less than 小于-gt:greater than 大于-le:less than or equal 小于或等于-ge:greater than or equal 大于或等于

为什么不可以用<,>等来表达上面这些关系,因为这些符号在类Unix系统中有特殊用途。

到此这篇关于bash shell的条件语句的文章就介绍到这了,更多相关bash shell条件语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • git revert和git reset的区别详解

    git revert和git reset的区别详解

    这篇文章主要介绍了git revert和git reset的区别详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • Shell脚本生成Go的程序包的实现步骤

    Shell脚本生成Go的程序包的实现步骤

    通过编写Shell脚本,我们可以大大简化Golang项目的打包和部署流程,本文就来介绍一下Shell脚本生成Go的程序包的实现步骤,感兴趣的可以了解一下
    2024-01-01
  • Linux Shell脚本系列教程(七):脚本调试

    Linux Shell脚本系列教程(七):脚本调试

    这篇文章主要介绍了Linux Shell脚本系列教程(七):脚本调试,本文讲解了Bash内建调试功能和自定义调试功能等内容,需要的朋友可以参考下
    2015-06-06
  • Shell脚本注释的实现

    Shell脚本注释的实现

    本文主要介绍了Shell脚本注释的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • shell 判断字符串是否存在数组中的实现示例

    shell 判断字符串是否存在数组中的实现示例

    这篇文章主要介绍了shell 判断字符串是否存在数组中的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 在linux上定期执行命令、脚本(cron,crontab,anacron)

    在linux上定期执行命令、脚本(cron,crontab,anacron)

    在linux下,如果想要在未来的某个时刻执行某个任务,并且在未来的每一个这样的时刻里都要执行这个任务。这篇文章主要介绍了在linux上定期执行命令、脚本(cron,crontab,anacron)的相关知识,需要的朋友可以参考下
    2018-07-07
  • bash if条件判断的使用

    bash if条件判断的使用

    本文主要介绍了bash if条件判断的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Shell中的变量使用小结

    Shell中的变量使用小结

    这篇文章主要介绍了Shell中的变量使用小结,本文总结了变量的语法、常见使用形式等内容,并分别给出代码示例,需要的朋友可以参考下
    2015-05-05
  • 每天一个linux命令 chgrp命令

    每天一个linux命令 chgrp命令

    这篇文章主要为大家详细介绍了一个linux命令:chgrp命令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Shell中变量作用域的介绍与使用命令

    Shell中变量作用域的介绍与使用命令

    作用域是我们在日常学习或者工作中经常会遇到的一个问题,下面这篇文章主要给大家介绍了关于Shell中变量作用域的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面跟着小编来一起学习学习吧。
    2017-08-08

最新评论