文章目录
- if单分支
- 1. 单分支语法分析
- 2. 单分支语法规范
- if双分支语法分析
- 3. if单分支和双分支脚本举例
- a. 检查是否为超级用户(双分支)
- b. 找一个金钱大于1000000的结婚(单分支)
- c. 判断文件是否为普通文件(双分支)
- d. 判断一个文件是否存在(双分支)
- 总结
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脚本能不能写好,与逻辑思维,编程思维,没有太大的关系。
小伙伴们: 要下苦功夫了!