【Linux】shell脚本实战-if单双分支条件语句详解
【摘要】
文章目录
if单分支1. 单分支语法分析2. 单分支语法规范if双分支语法分析3. if单分支和双分支脚本举例a. 检查是否为超级用户(双分支)b. 找一个金钱大于1000000的结婚(单分支)c. 判断文件是否为普通文件(双分支) d. 判断一个文件是否存在(双分支) 总结
if单分支
在所有的编程语言里面,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脚本能不能写好,与逻辑思维,编程思维,没有太大的关系。
小伙伴们: 要下苦功夫了!
文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。
原文链接:zmedu.blog.csdn.net/article/details/107825762
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)