Shell脚本学习-if循环

news2024/11/14 12:11:08

最小化的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/nginx

if  [ -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 0
  else
    echo "${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 0
  else
    echo "${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 0
  else
    echo "${num1} <= ${num2}"
 exit 6
fi

[root@ldpbzhaonan bash]$ bash varif06.sh
666 <= 777

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

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

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

相关文章

罐头鱼AI视频矩阵运营获客系统|视频批量混剪

智能化运营&#xff0c;助力视频营销——AI视频矩阵运营系统全面解析 随着数字营销时代的到来&#xff0c;视频已成为各行业推广和营销的重要手段之一。为了更好地管理和发布视频内容&#xff0c;我们推出了全新的AI视频矩阵运营系统&#xff0c;集成了多项智能功能&#xff0c…

张桥社区组织“平安大讲堂”企业应急救护及消防主题培训

为进一步加强园区商户的平安生产意识&#xff0c;提升应急救护能力&#xff0c;在襄阳市民政局的指导和支持下&#xff0c;襄阳市和时代社会工作服务中心依托襄阳市“光明谷”社会组织助力共同缔造项目&#xff0c;联合樊城区红十字会、樊城区点爱志愿者协会在张桥社区“美世界…

第十二届蓝桥杯省赛CC++ 研究生组

十二届省赛题 第十二届蓝桥杯省赛C&C 研究生组-卡片 第十二届蓝桥杯省赛C&C 研究生组-直线 第十二届蓝桥杯省赛C&C 研究生组-货物摆放 第十二届蓝桥杯省赛C&C 研究生组-路径 第十二届蓝桥杯省赛C&C 研究生组-时间显示 第十二届蓝桥杯省赛C&C 研究生组…

Unity---Lua语言

Lua Binaries Download 13.2 逻辑热更新——Lua1-3_哔哩哔哩_bilibili nil表示空 只有false和nil为false&#xff0c;其他值都为true ..连接两个字符串

基于Springboot的疫情物资管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的疫情物资管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

阿里云2核4G云服务器ECS和轻量应用服务器价格表

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

TikTok新号必须做的3件事

根据互联网安全公司Cloudflare的2023年互联网流量回顾&#xff0c;TikTok超过谷歌成为2023年最受欢迎的网站。这意味着现在有大量用户在使用TikTok&#xff0c;在TikTok平台上&#xff0c;你可能会突然出名&#xff0c;可能会突然让您的营销获得回报。 但如果你是刚加入TikTok用…

【保姆级教程】YOLOv8_Track多目标跟踪,快速运行

一、YOLOV8环境准备 1.1 下载安装最新的YOLOv8代码 仓库地址&#xff1a; https://github.com/ultralytics/ultralytics1.2 配置环境 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple二、下载测试视频&#xff0c;预训练权重 测试视频 链接&am…

【Review+预测】测试架构演进的曲折之路

文章目录 前言 一、“原始”阶段 二、“小打小闹”阶段 三、“小米加步枪”阶段 四、“摩托化部队”阶段 五、“骑兵连”阶段 六、“海军陆战队”阶段 七、“社区型组织”阶段 前言 近期公司的测试团队需要重新组织安排&#xff0c;本着谦虚谨慎的态度&#xff0c;我从…

人像抠图HumanSeg——基于大规模电话会议视频数据集的连接感知人像分割

前言 人像抠图将图像中的人物与背景进行像素级别的区分的技术。通过人像分割&#xff0c;可以实现诸如背景虚化、弹幕穿人等各种有趣的功能&#xff0c;为视频通话和影音观看提供更加优质和丰富的体验。由于广泛部署到Web、手机和边缘设备&#xff0c;肖像分割在兼顾分割精度的…

java动态规划学习笔记

学习笔记目录&#xff0c;这里记录个大纲&#xff0c;详情点链接 背包问题 01背包问题综述 01背包问题&#xff08;二维数组&#xff09;https://blog.csdn.net/m0_73065928/article/details/136794406?spm1001.2014.3001.5501 01背包问题&#xff08;滚动数组&#xff09…

KubeSphere的基本使用操作

KubeSphere的基本使用操作 基本使用用户角色创建企业空间创建项目 创建应用创建密钥创建MySQL密钥创建WordPress密钥 创建存储卷创建MySQL存储卷创建Wordpress存储卷 添加组件服务类型添加MySQL组件添加WordPress组件 访问Wordpress 基本使用 用户角色 KubeSphere 中的权限控制…

Vue3 Vite3 状态管理 pinia 基本使用、持久化、在路由守卫中的使用

参考https://juejin.cn/post/7152774411571953677&#xff0c;自己简洁化了一部分 1.安装pinia依赖 yarn add pinia 创建pini实例 根目录创建store文件夹&#xff0c;然后创建index.js import { createPinia } from piniaconst pinia createPinia()export default pinia …

C语言例3-26:逗号表达式的例子

逗号表达式&#xff1a; 表达式1&#xff0c;表达式2 表达式可以是算术表达式、关系表达式、逻辑表达式、条件表达式、赋值表达式和逗号表达式。 代码如下&#xff1a; #include<stdio.h> int main(void) {int i1,j;float f2.0f;char chb; //b(98)// printf(&…

【论文精读】DALLE3:Improving Image Generation with Better Captions 通过更好的文本标注改进图像生成

文章目录 一、文章概览二、数据重标注&#xff08;一&#xff09;现在训练数据的文本标注主要存在的问题&#xff08;二&#xff09;创建图像标注器&#xff08;三&#xff09;微调图像标注器 三、评估重新标注的数据集&#xff08;一&#xff09;混合合成标注和真实标注&#…

如何看待腾讯 QQ 浏览器抄袭 Arc

今天在 Reddit 的帖子上看到&#xff0c;QQ 浏览器抄袭了 Arc 而且还是 Arc 官方发布的 It looks very similar lol 看起来也太像了&#xff0c;笑死我了 稍微震惊了一下&#xff0c;带着疑惑&#xff0c;打开了 QQ 浏览器官网页 点击下载 ⬇️ 下载后打开 翻找了下&#xff0…

DBO优化LSBoost回归预测(matlab代码)

DBO-LSBoost回归预测matlab代码 蜣螂优化算法(Dung Beetle Optimizer, DBO)是一种新型的群智能优化算法&#xff0c;在2022年底提出&#xff0c;主要是受蜣螂的的滚球、跳舞、觅食、偷窃和繁殖行为的启发。 数据为Excel股票预测数据。 数据集划分为训练集、验证集、测试集,比…

力扣994. 腐烂的橘子(DFS)

Problem: 994. 腐烂的橘子 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.定义一个二维矩阵dp初始化每个元素值为矩阵的行数乘以列数&#xff1b;用于记录每个新鲜橘子距离第一个腐烂橘子的最早的腐烂时间&#xff1b; 2.遍历矩阵grid若当前橘子是腐烂的橘子&a…

Redis中的缓存雪崩

缓存雪崩 &#x1f914;现象分析 缓存雪崩是指在同一时段大量的缓存key同时失效或者缓存服务(Redis等)宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 &#x1f44a; 解决方案 利用Redis集群提高服务的可用性&#xff0c;避免缓存服务宕机给缓存业务添…

2001-2023年中国各省市级是否属于“开通高铁”城市匹配数据

2001-2023年中国各省市级是否属于“开通高铁”城市匹配数据 1、时间&#xff1a;2001-2023年 2、范围&#xff1a;300个地级市&#xff08;包括直辖市&#xff09; 3、来源&#xff1a;历年中国铁道出版社出版的《全国铁路旅客列车时刻表》 4、用途&#xff1a;高铁开通可作…