shell脚本(8)-流程控制if
一、单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的更多相关文章
- shell脚本之流程控制
shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语 ...
- shell脚本 3 流程控制
shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...
- Shell脚本学习 - 流程控制和函数
继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...
- Shell脚本之流程控制(if、for、while)
if 判断 if语句的三种格式: (1)if (2)if else (3)if elif else 语法格式如下: #if 语法格式 if 条件 then 命令1... 命令2... fi #if e ...
- shell脚本(10)-流程控制while
一.while循环介绍 while循环与for一样,一般不知道循环次数使用for,不知道循环的次数时推荐使用while 二.while语法 while [ condition ] #条件为真才会循环, ...
- shell脚本(11)-流程控制case
一.case介绍 生产环境下,遇到要根据不同的状况执行不同的预案的情况,首先根据可能出现的情况写出对应预案,根据出现的情况来加载不同的预案 特点:根据给予的不同的代码块 二.case语法 case 变 ...
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...
- Shell命令和流程控制
Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...
- Shell脚本的条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
- Shell命令和流程控制[linux常用命令的使用]
在shell脚本中使用三类命令: unix命令 概念:管道.重定向.backtick 流程控制 1 unix命令 echo "some text":在屏幕上输出信息 ls:文件列表 ...
随机推荐
- 在 Sealos 中使用区块链技术实现统一支付系统
拿着区块链技术不一定是去发币,很多业务系统也适合用这些技术,比如做个统一支付系统,积分系统等,可以做为一家公司的金融基础设施,或支付中台.拿链的技术去做有很多好处: 高可用,自带多区域高一致性的能力, ...
- k8s~动态生成pvc和pv
有时,我们不想手动建立pv和pvc,这时,我们可以通过strongClass存储类来帮我们实现,动态建立pvc,并动态为它分配pv存储空间,我们以nfs为例,说一下动态分配在nfs存储截至上建立pv的 ...
- Ef Core花里胡哨系列(10) 动态起来的 DbContext
Ef Core花里胡哨系列(10) 动态起来的 DbContext 我们知道,DbContext有两种托管方式,一种是AddDbContext和AddDbContextFactory,但是呢他们各有优 ...
- 年底了,网站被挂马了,关于IIS被陌生DLL劫持(新人发帖,写的不好的地方,请多多担待)
一上班被分到两个需要杀毒的站点,情况是SEO被劫持 出现一些博彩信息,但是打开确实正常内容,使用站长工具的网站被黑检测功能,发现网站的HEAD前面加载一对加密的东西 一开始我使用D盾扫描网站,删除了一 ...
- Java反序列化漏洞-CC6链分析
CC6利用链分析 经过之前对CC1链和URLDNS链的分析,现在已经对反序列化利用链有了初步的认识,这次来分析一个最好用的CC利用链--CC6. 为什么CC6是最好用的CC利用链,因为CC6不限制jd ...
- BUUCTF 加固题 Ezsql WriteUp
文章目录 想直接要加固代码的点这里 题目 一.查看 二.进入目标机器加固 修改前的文件: 添加如下代码: 修改后的文件 三.Check 想直接要加固代码的点这里 题目 靶机地址解释: 第一行:目标机器 ...
- 使用MediaDevices接口实现录屏技术
摘要:本文将介绍如何使用JavaScript的MediaDevices接口实现录屏功能.我们将通过WebRTC技术捕获用户的屏幕或摄像头画面,并将其编码为MP4视频文件. 在线录屏是指在互联网上进行屏 ...
- Java 查找并替换PDF中的指定文本
本文介绍通过Java程序批量替换PDF中的指定文本内容. 1. 程序环境准备如下: 程序使用环境如图,需要注意的是,本文使用了免费版的PDF jar工具:另外JDK版本建议使用高版本更佳. jar ...
- 想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中
摘要:Kubernetes 很多看起来比较"繁琐"的设计的主要目的,都是希望为开发者提供更多的"可扩展性",给使用者带来更多的"稳定性"和& ...
- 只需2步,教你在Vue中设置登录验证拦截
摘要:两步教你在Vue中设置登录验证拦截! 本文分享自华为云社区<两步教你在Vue中设置登录验证拦截!>,作者: 灰小猿 . 今天在做vue和springboot交互的一个项目的时候,想要 ...