首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
常用软件
运维软件
办公软件
书籍资源
日知录
招聘信息
读书计划
书单
关于我们
首页 运维教程shell脚本【Linux】shell脚本实战-if单双分支条件语句详解

【Linux】shell脚本实战-if单双分支条件语句详解

if单分支

在所有的编程语言里面,if条件语句几乎是最简单的语句格式,且用途最广。

当if后面的<条件表达式>成立(真)的时候,就会执行then后面的指令或语句,否则,就会忽略then后面的指令或语句,转而执行fi下面的程序。

if语句流程图:
在这里插入图片描述

1. 单分支语法分析
第一种语法:

if <条件表达式>
then
    指令
fi

第二种语法:

if <条件表达式>;then
    指令
fi

上文中的“<条件表达式>”位置部分,可以使用test、[]、[[]]、(())等条件表达式

2. 单分支语法规范

if语句语法规范**

  • if与[之间要有空格
  • [ ]与判断条件之间也必须有空格
  • ]与;之间不能有空格
  • 以fi结尾,表示if语句的结束
if双分支语法分析
语法:
if <条件表达式>
  then
    指令
  else
    指令
fi

例如:
if [ 你有钱 ]
  then
     我就嫁给你
  else
     我考虑下
fi
3. if单分支和双分支脚本举例
a. 检查是否为超级用户(双分支)
[root@ecs-c13b ~]# cat iftest01.sh 
#!/bin/bash
if [ $UID -ne 0 ];then
  echo not  root user ,please run as root.
else
  echo Root user

fi

返回结果:

[root@ecs-c13b ~]# bash iftest01.sh 
Root user

[root@ecs-c13b ~]# whoami
root

b. 找一个金钱大于1000000的结婚(单分支)
#!/bin/bash
read -p 'please input your money:' num
if [ $num -ge 10000000 ]
then
        echo 'let us get married!!'
fi

返回结果

[root@ecs-c13b ~]# bash iftest02.sh 
please input your money:10000000
let us get married!!
c. 判断文件是否为普通文件(双分支)
#!/bin/bash
read -p 'please input a file name, for example /root/test.txt:' filename
if [ -f $filename ];then
        echo '这是一个普通文件'
else
        echo '请重新输入一个文件'
fi

返回结果:

[root@ecs-c13b ~]# bash iftest03.sh 
please input a file name, for example /root/test.txt:iftest02.sh
这是一个普通文件
d. 判断一个文件是否存在(双分支)
#!/bin/bash
fpath=/etc/passwd
if [ -e $fpath ];then
        echo File exits;
else
        echo File not exits;
fi
~    

返回结果:

[root@ecs-c13b ~]# bash iftest04.sh 
File exits

总结

单分支语句和双分支语句是最简单的一种语句,涉及到一层的判断,但这种属于整个判断语句的基础,如果基础判断语句整不明白,后面学再多也是白学,建议大家多加练习。 其实难点在于条件测试中的各类运算, 比如-f -d -z 等等,还有大于小于整明白了,这块的内容就不算难。

所以说上一节 的内容是重点,都是需要记忆的东西,能全记下来更好,如果不能全部记下,只记住重点就好。

你对Linux的精通程度,决定了你的shell脚本能不能写好,与逻辑思维,编程思维,没有太大的关系。

小伙伴们: 要下苦功夫了!

本文链接:http://www.geekyunwei.com/2040.html

网友评论comments

发表评论

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

暂无评论

Copyright © 2021 极客运维 备案号: 京ICP备2021004281号
扫二维码
扫二维码
返回顶部