一、单if语法

1、语法格式:

if [ condition ]  #condition值为
then
commands
fi

2、举例:

[root@localhost test20210725]# vim document.sh

#!/usr/bin/bash

#假如没有/tmp/abc这个文件夹,就创建一个

if [ ! -d /tmp/abc ]
then
mkdir -pv /tmp/abc
  echo "文件创建成功"

fi

查看运行结果:

[root@localhost test20210725]# sh document.sh
mkdir: created directory ‘/tmp/abc’
文件创建成

二、if...else语法

1、语法格式:

if [ condition ]  #condition值为
then
commands1
else
commands2
fi

2、举例:

[root@localhost test20210725]# vim document2.sh 

#!/usr/bin/bash

#假如没有/tmp/abc这个文件夹,就创建一个,否则打印信息

if [ ! -d /tmp/abc ]
then
mkdir -pv /tmp/abc
echo "文件创建成"
else
echo "文件已经存在,不再创建"
fi

查看运行结果:

[root@localhost test20210725]# sh document2.sh
mkdir: created directory ‘/tmp/abc’
文件创建成
[root@localhost test20210725]# sh document2.sh
文件已经存在,不再创建

三、if...elif...else语法

1、语法格式:

if [ condition1 ]  #condition值为
then
commands1
elif [ condition2 ]
then
commands2
......
else
commandsx
fi

2、举例说明:

[root@localhost test20210725]# vim number3.sh

#!/usr/bin/bash

#脚本传递两个数字参数并比较
if [ $1 -eq $2 ]
then
echo "$1 = $2"
elif [ $1 -gt $2 ]
then
echo "$1 > $2"
else
echo "$1 < $2"
fi

查看运行结果:

[root@localhost test20210725]# sh number3.sh 1 1
1 = 1
[root@localhost test20210725]# sh number3.sh 2 1
2 > 1
[root@localhost test20210725]# sh number3.sh 1 3
1 < 3

四、if高级语法

1、使用(())植入数学表达式做运算,举例:

[root@localhost test20210725]# vim if_avg.sh

#!/usr/bin/bashif (( 100%3+1>1  ))
then
echo "yes"
else
echo "no"
fi

查看运行结果:

[root@localhost test20210725]# sh if_avg.sh
yes

2、使用[[]]可以在条件中使用通配符,举例:

[root@localhost test20210725]# vim if_avg2.sh

#!/usr/bin/bash

for i in r1 rr2 cc rr3
do
if [[ $i == r* ]];then
echo $i
fi
done

查看运行结果:

[root@localhost test20210725]# sh if_avg2.sh
r1
rr2
rr3

shell脚本(8)-流程控制if的更多相关文章

  1. shell脚本之流程控制

      shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语 ...

  2. shell脚本 3 流程控制

    shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...

  3. Shell脚本学习 - 流程控制和函数

    继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...

  4. Shell脚本之流程控制(if、for、while)

    if 判断 if语句的三种格式: (1)if (2)if else (3)if elif else 语法格式如下: #if 语法格式 if 条件 then 命令1... 命令2... fi #if e ...

  5. shell脚本(10)-流程控制while

    一.while循环介绍 while循环与for一样,一般不知道循环次数使用for,不知道循环的次数时推荐使用while 二.while语法 while [ condition ] #条件为真才会循环, ...

  6. shell脚本(11)-流程控制case

    一.case介绍 生产环境下,遇到要根据不同的状况执行不同的预案的情况,首先根据可能出现的情况写出对应预案,根据出现的情况来加载不同的预案 特点:根据给予的不同的代码块 二.case语法 case 变 ...

  7. 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!

    http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

  8. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

  9. Shell脚本的条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...

  10. Shell命令和流程控制[linux常用命令的使用]

    在shell脚本中使用三类命令: unix命令 概念:管道.重定向.backtick 流程控制 1 unix命令 echo "some text":在屏幕上输出信息 ls:文件列表 ...

随机推荐

  1. vue-test -----ListDemo 列表渲染

    <template> <h3>数组</h3> <button @click="addnums">添加数据</button> ...

  2. MongoDB中的分布式集群架构

    MongoDB 中的分布式集群架构 前言 Replica Set 副本集模式 副本集写和读的特性 Sharding 分片模式 分片的优势 MongoDB 分片的组件 分片键 chunk 是什么 分片的 ...

  3. ImportError: No module named pypinyin

    import platform, subprocess, os, zipfile, xml, re, pypinyin ImportError: No module named pypinyin pi ...

  4. STM32CubeMX教程5 TIM 定时器概述及基本定时器

    1.准备材料 开发板(STM32F407G-DISC1) ST-LINK/V2驱动 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) 逻 ...

  5. CentOS7 安装Python3.9以上版本时。编译报错,原因是openssl版本低

    openssl-1.1.1安装 1.前因 python 导入clickhouse_driver需要import ssl和_ssl,报错 File"/home/oracle/python3/l ...

  6. curl使用小记(二)——远程下载一张图片

    目录 1. 概述 2. 实例 3. 参考 1. 概述 在之前的文章<curl使用小记(一)>中论述了命令行工具curl的基本使用.除此之外,curl还提供了能够直接供程序调用的模块库接口l ...

  7. 华为云GaussDB亮相金融业数据库技术大会

    本文分享自华为云社区<华为云GaussDB亮相金融业数据库技术大会,激发金融行业发展新动能>,作者:GaussDB 数据库 . 近日,由北京金融信息化研究所主办的2023金融业数据库技术大 ...

  8. 云数据库 GaussDB(for Influx) 解密第十一期:让智能电网中时序数据处理更高效

    摘要:GaussDB(for Influx)是一款基于计算存储分离架构,完全兼容 InfluxDB 生态的云原生时序数据库. 本文分享自华为云社区<云数据库 GaussDB(for Influx ...

  9. 敏捷开发专家一席谈:云原生技术下的华为云DevOps实践之路

    摘要:听华为云DevCloud首席技术布道师徐毅讲述云原生下的DevOps实践. 本文分享自华为云社区<敏捷开发专家一席谈:云原生技术下的华为云DevOps实践之路>,作者:华为云社区精选 ...

  10. 万字详解什么是生成对抗网络GAN

    摘要:这篇文章将详细介绍生成对抗网络GAN的基础知识,包括什么是GAN.常用算法(CGAN.DCGAN.infoGAN.WGAN).发展历程.预备知识,并通过Keras搭建最简答的手写数字图片生成案. ...