文章目录

  • 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 ];thenecho not  root user ,please run as root.
elseecho Root userfi

返回结果:

[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 ]
thenecho '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 ];thenecho '这是一个普通文件'
elseecho '请重新输入一个文件'
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 ];thenecho File exits;
elseecho File not exits;
fi
~

返回结果:

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

总结

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

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

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

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

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

  1. 【Linux】shell脚本实战-if多分支条件语句详解

    文章目录 前言 多分支语句的语法 多分支语句举例: 1. 出嫁的条件 2. 管理http服务实战脚本 3. 猜数字游戏v1版本-if版本 总结 前言 前面我们已经学习过单分支语句和双分支语句的使用. ...

  2. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  3. linux expect 输入密码,shell脚本无密码登录 expect的使用方法详解

    shell脚本无密码登录 expect的使用方法详解 今天需要做一个定时任务脚本将最新的数据包文件传到远程的服务器上,虽然有密钥但也是要求输入密码的那种,所以只能另想办法实现让脚本自动输入密码了. 从 ...

  4. shell脚本编程神器之awk语法案例详解

    AWK入门指南 文章目录 shell脚本编程神器之awk语法案例详解 安装AWK AWK 起步示例 AWK程序的结构 执行 awk 程序 awk 的错误提示 简单输出 打印每一行 打印特定行 NF,字 ...

  5. 【Shell】20天学会shell脚本命令(2)变量的详解

    一.问题 1.1.环境 电脑环境:Windows 10: Docker版本:Server Version: 19.03.3 1.2.问题 shell脚本一直是Linux的必回只语言:就像去英语系国家工 ...

  6. 【Python从零到壹】Python条件语句详解

    欢迎大家来到互联网老辛的专栏<Python从零到壹>,在这里我将分享约300篇Python系列文章,所有文章都将结合案例.代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望 ...

  7. Python基础必掌握的条件语句详解

    Python 中的条件语句根据特定布尔约束的计算结果为真或假,执行不同的计算或操作.条件语句由 Python 中的 IF 语句处理. 到目前为止演示的代码都是由顺序执行组成的.但是实际情况是通常程序需 ...

  8. linux spec 脚本,RPM包制作之Spec文件详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  9. python条件语句-Python if else条件语句详解

    前面我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条.第3条--一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...

最新文章

  1. autohotkey快捷键
  2. 阿士比亚:搜索团队智能内容生成实践
  3. C++中的static关键字的总结
  4. springboot默认数据源如何设置连接数_Spring Boot系列之配置数据库连接池
  5. ad09只在一定范围内查找相似对象_dxp查找相似对象
  6. mysql没有写入权限_MySQL的权限系统
  7. (计算机组成原理)第二章数据的表示和运算-第三节2:IEEE754标准
  8. php正则字母,PHP匹配连续的数字或字母的正则表达式
  9. android 多线程 handler使用方法
  10. visual studio 2015安装教程
  11. 雷达为什么要进行脉冲压缩
  12. 后缀–ize_以ize结尾的英语单词
  13. php页眉,如何在php中创建Word文档页眉/页脚
  14. 使用Vue获取外网ip地址
  15. 华为手机传感器测试软件,华为P8拍摄能力测试 IMX278传感器到底魅力何在
  16. Quick BI、帆软Fine BI等BI产品,优势详细介绍
  17. 案例:仿小米logo渐变效果练习
  18. Interwine China 2009广州国际名酒展
  19. 设计模式学习之假如你是一个建造者(建造者模式)
  20. 制作一个属于自己的BHO吧!(C#)

热门文章

  1. java jradiobutton使用_Java Swing组件单选框JRadioButton用法示例
  2. makefile指定头文件路径_Linux应用编程之quot;一文搞定Makefilequot;(下)
  3. redmine备份_Redmine数据库备份及搬家
  4. 计算机题目道路游戏,道路考试模拟游戏
  5. iOS开发那些事-Passbook详解与开发案例
  6. 打开旧的图纸属性窗口
  7. 计算机辅助园林设计作业,《计算机辅助园林设计B - usleducn.DOC
  8. 计算机光盘插哪里,光盘插到电脑后在哪找出光盘上的内容?
  9. 3D游戏建模行业这5点很真实
  10. .net NPOI Excel导入:时间格式2022/5/26导入变成26-5月-2022