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

文章目录

        • if单分支
          • 1. 单分支语法分析
          • 2. 单分支语法规范
          • if双分支语法分析
          • 3. if单分支和双分支脚本举例
          • a. 检查是否为超级用户(双分支)
          • b. 找一个金钱大于1000000的结婚(单分支)
            • c. 判断文件是否为普通文件(双分支)
          • d. 判断一个文件是否存在(双分支)
        • 总结

if单分支

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

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

if语句流程图:
【Linux】shell脚本实战-if单双分支条件语句详解_第1张图片

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脚本能不能写好,与逻辑思维,编程思维,没有太大的关系。

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

你可能感兴趣的:(#,循序渐进学运维-脚本篇,shell脚本,单条件语句,if循环)