前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell IF语句的使用[通俗易懂]

shell IF语句的使用[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-14 11:44:54
4350
发布2022-09-14 11:44:54
举报
文章被收录于专栏:全栈程序员必看

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

目录

条件语句(if else)的简单介绍

if…fi语句

if…else…fi语句

if…elif…[else…]fi语句


条件语句(if else)的简单介绍

如果你在用shell完成一些逻辑判断的时候,可能会用到if…else之类的条件语句。但是,shell中非同寻常的语法会让你每次都需要在网上重新查询确认。在shell中,即使是一些标点符号,通常也有自己的含义。现在列举下if条件语句中一些基础语法。

中括号[]的含义

在if语句中,[]不是简单的条件分隔,它本身的含义是相当于命令test。在shell中,test用于检查某个条件是否成立,它的返回值为bool。比如:

代码语言:javascript
复制
a=100
b=101
test $a -eq $b
echo $?

该函数的返回值为1,表示上一次执行结果为false,也就是变量a和变量b不相等。 test命令的语法可以参见test命令

分号;的含义

在shell中,分号表示命令的分隔符号。在一行中,可以通过分号将多个命令分隔开来,否则shell无法识别多个命令。比如:

代码语言:javascript
复制
if [ $a -eq $b ] ;then
    echo "a eq b"
fi 

if [ $a -eq $b ]
then
    echo "a eq b"
fi

if…fi语句

这类语句只有一个条件判断,如果判断条件是true,那么就执行,否则跳过。

代码语言:javascript
复制
a=100
b=100
if [ $a -eq $b ];then
    echo "a eq b"
fi

在这里,需要注意两个地方。第一个就是中括号必须和和前后的变量/命令之间有空格分开,因为[] 相当于test命令,而两个命令是不能挨着的。第二个就是;不能够省略,因为then是另一个命令,他们之间需要用;分隔。

if…else…fi语句

代码语言:javascript
复制
a=100
b=101
if [ $a -eq $b ];then
    echo "a eq b"
else
    echo "a not eq b"
fi

if…elif…[else…]fi语句

代码语言:javascript
复制
a=100
b=101
c=102
if [ $a -eq $b ];then
    echo "a eq b"
elif [ $a -eq $c ];then
    echo "a eq c"
else
    echo "a not eq b and a not eq c"
fi

注意,else不一定是需要的。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 条件语句(if else)的简单介绍
  • if…fi语句
  • if…else…fi语句
  • if…elif…[else…]fi语句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档