Shell脚本学习-if循环

最小化的if语句

无实际用途

if [ ] ;then 
echo 
fi

脚本解释

if 判断 [   ]  里面的条件是否成立 后面跟then,代表条件成立 如果在一行则使用分号隔离(;) 如果不在一行使用则·直接在下一行驶入then即可。  

如果条件成立则输出echo 后面的内容。fi表示结束。

脚本执行结果

[root@ldpbzhaonan bash]$ cat var01.sh 
if [ ] ;then 
echo 
fi
[root@ldpbzhaonan bash]$ bash var01.sh 

[  ] 里面必须要加入空格

否则无法执行

[root@ldpbzhaonan bash]$ cat var01.sh 
if [] ;then 
echo 
fi
[root@ldpbzhaonan bash]$ bash var01.sh 
var01.sh:行1: []:未找到命令

判断是否为文件

[root@ldpbzhaonan bash]$ cat var02.sh 
if [ -f /etc/passwd ]then echo '/etc/passwd 存在,并且是一个普通文件'
fi
[root@ldpbzhaonan bash]$ bash var02.sh
/etc/passwd 存在,并且是一个普通文件

这里就是使用 -f 判断 /etc/passwd 是否存在,并且是一个普通文件。

如果条件成立则输出   /etc/passwd 存在,并且是一个普通文件。

判断是否为空

[root@ldpbzhaonan bash]$ cat varif03.sh 
if [ "LDP" ]then echo "不为空"
fi
[root@ldpbzhaonan bash]$ bash varif03.sh
不为空

if分支

[root@ldpbzhaonan bash]$ cat varif04.sh 
nginx=/usr/local/nginx
if  [ -d ${nginx} ]then/usr/bin/echo "ngin目录存在!!!"else/usr/bin/mkdir ${nginx}[ -d ${nginx} ] && /usr/bin/echo "${nginx}存在!!!"
脚本说明:这里就是设置一个变量nginx=/usr/local/nginxif  [ -d ${nginx} ]
判断 该目录是否存在 ,变量需要有$字符才能转换,并且规范使用花括号({}),括起来。then  /usr/bin/echo "ngin目录存在!!!"
如果以上的判断成立,则输出ngin目录存在!!!。这里引用echo命令的绝对路径。else  /usr/bin/mkdir ${nginx}
else就是代表以上的判断不成立的化,则输出以下内容,这里引用mkdir 命令的绝对路径,来创建nginx对应的变量。[ -d ${nginx} ] && /usr/bin/echo "${nginx}存在!!!"再次判断变量对用的目录是否存在,存在则执行${nginx}存在!!!&&(逻辑与) 就是如果左边的条件成立,则输出右边的命令,如果左边的条件不成立,则不输出右边的命令
fi


 

比较数字

aaa=333
bbb=444
if [ ${aaa} -gt ${bbb} ]then echo "${aaa} 大于 ${bbb}"exit 0elseecho "${aaa}可能小于或者等于${bbb}"exit 9
fi

 这里就是设置aaa bbb 字符的变量

如果 aaa的变量大于bbb的变量,则输出${aaa} 大于 ${bbb}的变量

否则 输出${aaa}可能小于或者等于${bbb}的变量

exit的作用是退出当前运行的程序,并将参数value返回给主调进程。

exit 0 表示程序正常退出 ,非0代表程序异常退出

如图显示以上脚本的输出结果和echo $? 返回的值

双中括号的使用

双中括号就是支持运算符的使用

不使用双中括号

[root@ldpbzhaonan bash]$ cat varif06.sh
num1=666
num2=777
if [ ${num1} > ${num2} ]then  echo "${num1} > ${num2}"
exit 0elseecho "${num1} <= ${num2}"exit 6
fi[root@ldpbzhaonan bash]$ bash varif06.sh 
666 > 777

在这里设置num1 大于num2 的话才输出num1 > num2的变量,但是很明显num1小于num2,这里就是一个中括号不支持运算符的使用

使用双中括号

[root@ldpbzhaonan bash]$ cat varif06.sh
num1=666
num2=777
if [[ ${num1} > ${num2} ]]then  echo "${num1} > ${num2}"
exit 0elseecho "${num1} <= ${num2}"exit 6
fi[root@ldpbzhaonan bash]$ bash varif06.sh
666 <= 777

查看结果马上不一样了,代表双中括号支持运算符的使用,因此建议大家使用双中括号来编写if语句

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT管理备考TOGAF10证书有哪些好处?

现今&#xff0c;随着信息技术的快速发展&#xff0c;企业对于高效的IT管理需求日益增长。而TOGAF10证书作为全球公认的企业架构管理标准&#xff0c;成为了IT管理者的必备工具。本文将为您详细介绍TOGAF10证书的好处&#xff0c;以助您更好地了解和利用这一强大的工具。 首先&…

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 并训练自己的数据集

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 概述 大模型微调(finetuning)以适应特定任务是一个复杂且计算密集型的过程。本文训练测试主要是基于主流的的微调方法:LoRA、Adapter、Prefix-tuning、P-tuning和Prompt-tuning,并对…

金蝶云星空——单据附件上传

文章目录 概要技术要点代码实现小结 概要 单据附件上传 技术要点 单据附件上传金蝶是有提供标准的上传接口&#xff1a; http://[IP]/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.AttachmentUpLoad.common.kdsvc 参数说明 参数类型必填说明FileName字符是…

Vue3+JS:实现进度条拖拽

一、效果 二、代码实现 <template><div class"bar" ref"bar"><div class"slider" :style"Pos" mousedown"mousedown"></div></div> </template> <script setup lang"ts"…

8.2K star!史上最强Web应用防火墙

&#x1f6a9; 0x01 介绍 长亭雷池SafeLine是长亭科技耗时近 10 年倾情打造的WAF(Web Application Firewall)&#xff0c;一款敢打出口号 “不让黑客越雷池一步” 的 WAF&#xff0c;我愿称之为史上最强的一款Web应用防火墙&#xff0c;足够简单、足够好用、足够强的免费且开源…

60 个深度学习教程:包含论文、实现和注释 | 开源日报 No.202

labmlai/annotated_deep_learning_paper_implementations Stars: 44.0k License: MIT annotated_deep_learning_paper_implementations 是一个包含深度学习论文的 60 个实现/教程&#xff0c;附带并排注释&#xff1b;包括 transformers&#xff08;原始、xl、switch、feedbac…

Spring MVC(二)-过滤器与拦截器

过滤器和拦截器在职责和使用场景上存在一些差异。 过滤器 拦截器 作用 对请求进行预处理和后处理。例如过滤请求参数、设置字符编码。 拦截用户请求并进行相应处理。例如权限验证、用户登陆检查等。 工作级别 Servlet容器级别&#xff0c;是Tomcat服务器创建的对象。可以…

2024-3-21 市场情绪,嘿嘿嘿

市场的预期终于来到了今天&#xff0c;艾艾精工 13追平了 克来机电 13 &#xff0c;永悦科技8 追平了 睿能科技 8&#xff0c;那么早盘kimi概念卡了1个钟的流动性感觉强度一般般&#xff0c;唯一亮点就是 中广天泽 竞价抢筹&#xff1b;kimi概念本身没有什么大的预期&#xf…

2024 Java开发跳槽、面试心得体会

前言 由于个人发展的原因和工作上的变动&#xff0c;产生了想出来看看机会的想法&#xff0c;在决定要换工作后就开始复习准备。从年前就开始看面经&#xff0c;系统复习自己使用的技术栈&#xff0c;把自己项目中的技术梳理清楚。3月初开始在招聘网站上投简历&#xff0c;到三…

Java小项目--满汉楼

Java小项目–满汉楼 项目需求 项目实现 1.实现对工具包的编写 先创建libs包完成对jar包的拷贝和添加入库 德鲁伊工具包 package com.wantian.mhl.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.io.FileInputStream…

NC249989 猫猫与主人 (双指针,排序)

本题限制时间1s&#xff0c;而数据范围2e5&#xff0c;也就是说时间复杂度顶多 O ( n l o g n ) O(nlogn) O(nlogn)了&#xff0c;那就不能直接暴力枚举&#xff0c;可以使用双指针。 在使用双指针时要思考主要指针指向什么&#xff0c;在什么条件下能够更新另一个指针。 在本…

【Linux】进程控制 -- 详解

一、进程创建 目前学习到的进程创建的两种方式&#xff1a; 命令行启动命令&#xff08;程序、指令等&#xff09; 。通过程序自身&#xff0c;调用 fork 函数创建出子进程。 1、fork 函数初识 在 Linux 中的系统接口 fork 函数是非常重要的函数&#xff0c;它从已存在进程中…

js 输出一个相加后的整数。

等差数列 2&#xff0c;5&#xff0c;8&#xff0c;11&#xff0c;14。。。。 &#xff08;从 2 开始的 3 为公差的等差数列&#xff09; 输出求等差数列前n项和 输入&#xff1a;275 输出&#xff1a;113575const rl require("readline").createInterface({ input…

JavaSE:数据类型与变量

目录 一、前言 二、数据类型与变量 &#xff08;一&#xff09;字面常量 &#xff08;二&#xff09;数据类型 &#xff08;三&#xff09;变量 1.变量概念 2.语法格式 3.整型变量 3.1整型变量 3.2长整型变量 3.3短整型变量 3.4字节型变量 4.浮点型变量 4.1双精…

Linux--gdb调试

一.安装gdb sudo apt install gdb 二.使用gdb 三.gdb的相关操作 gdb 可执行文件名 显示代码: l 加断点: b 行号 启动程序:r(运行之前一定要加断点) 查看断点信息: info break/info b 删除断点信息:delete 断点编号 单步执行:n 打印 :p 显示:display 变量名: 退出:q …

C语言 自定义类型:联合和枚举

目录 前言 一、联合体 1.1 联合体的特点 1.2 联合体与结构体的区别 1.3 联合体的大小计算 1.4 联合体例子 1.5 联合体判断大小端 二、枚举 2.1 枚举类型定义 2.2 枚举类型的优点 2.3 枚举类型的使用 总结 前言 之前我们讲了C语言其中一个自定义类型结构体&#xff…

微信小程序外卖跑腿点餐(订餐)系统(uni-app+SpringBoot后端+Vue管理端技术实现)

项目介绍 自从计算机发展开始&#xff0c;计算机软硬件相关技术的发展速度越来越快&#xff0c;在信息化高速发展的今天&#xff0c;计算机应用技术似乎已经应用到了各个领域。 在餐饮行业&#xff0c;除了外卖以外就是到店里就餐&#xff0c;在店里就餐如果需要等待点餐的话…

Java基础--集合

集合 1.可以动态的保存任意多个对象&#xff0c;使用比较方便。 2.提供了一系列方便的操作对象的方法&#xff1a;add&#xff0c;remove&#xff0c;set&#xff0c;get等。 3.使用集合添加&#xff0c;删除新元素的示意代码&#xff0c;简介明了。 集合主要是两种&#xff0…

罗技G29游戏方向盘试玩拆解,带震动力反馈

1.正好有时间记录下 自己的爱好 一千多的罗技G29游戏方向盘试玩拆解&#xff0c;带震动力反馈&#xff0c;值这个价吗_哔哩哔哩_bilibili 一千多的罗技G29游戏方向盘试玩拆解&#xff0c;带震动力反馈&#xff0c;值这个价吗_哔哩哔哩_bilibili 2.拆解 3.2个大电机 4.主控芯…

全新体验|德克萨斯州奥斯汀市登陆 The Sandbox

以前所未有的方式探索德克萨斯州奥斯汀——The Sandbox迎来虚拟旅游&#xff0c;新体验由Smobler工作室打造。 我们的使命是为虚拟旅游创造新机遇&#xff0c;让每个人都能更方便地游览城市和国家。我们非常兴奋地宣布&#xff1a;Cobbleland&#xff1a;Austin&#xff0c;这款…