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/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语句

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Harmony应用开发—ArkTS-全局UI方法(日期滑动选择器弹窗)

根据指定的日期范围创建日期滑动选择器&#xff0c;展示在弹窗上。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 本模块功能依赖UI的执行上下文&#xff0c;不可在UI上下文不明确的地方使用&…

zabbix企业微信的告警媒介配置

简介&#xff1a; Zabbix企业微信告警媒介可用于向特定群组成员发送提醒通知。 前提条件&#xff1a; 完成Zabbix告警平台的搭建后&#xff0c;需将群机器人添加至告警提醒群中。 企业微信群聊——右上角三个点——添加群机器人 保存好产生的webhook地址&#xff08;注意&…

GESP图形化编程一级认证真题 2024年3月

GESP 图形化一级试卷 &#xff08;满分&#xff1a;100 分 考试时间&#xff1a;120 分钟&#xff09; 一、单选题&#xff08;每题 3 分&#xff0c;共 30 分&#xff09; 1、小杨的父母最近刚刚给他买了一块华为手表&#xff0c;他说手表上跑的是鸿蒙&#xff0c;这个 鸿蒙是…

jQuery 基础

文章目录 1. jQuery 概述1.1 JavaScript 库1.2 jQuery 概念1.3 jQuery 优点 2. jQuery 基本使用2.1 下载2.2 使用步骤2.3 jQuery 的入口函数2.4 jQuery 的顶级对象 $2.5 DOM 对象和 jQuery 对象DOM 对象和 jQuery 对象相互转换方法 1. jQuery 概述 1.1 JavaScript 库 1.2 jQue…

【论文阅读】基于多特征融合的智能合约缺陷检测方法

摘要&#xff1a; 1、预处理&#xff1a;颜色标记、词汇提取、字符转换、合约之间的继承关系的提取 2、 使用融合模型进行特征提取&#xff08;BERT、CNN、BiLSTM&#xff09; 3、使用node2vec随机游走算法&#xff0c;将合约之间的继承关系作为输入得到合约关系的特征向量。 4…

python-多参数-放置原则

python-多参数-操作原则&#xff1a; 形参、 位置参数、可变参数居于前&#xff0c;关键字参数居中&#xff0c;可变关键字放到最后 def school(name,location,*args,date_fauned,**kwargs):print(kwargs) school("sss","woshi","mike","…

【openCV】手写算式识别

OpenCV 机器学习库提供了一系列 SVM 函数和类来实现 SVM 模型的训练和预测&#xff0c;方便用户实现自己的 SVM 模型&#xff0c;并应用于分类问题。本文主要介绍使用 openCV 实现手写算式识别的工作原理与实现过程。 目录 1 SVM 模型 1.1 SVM 模型介绍 1.2 SVM 模型原理 2…

使用广播信道的数据链路层

目录 一、局域网的特点 二、媒体共享技术 三、以太网的两个标准 四、以太网 五、CSM/CD协议 1、碰撞检测 2、争用期 3、CSMA/CD重要特性 4、CSMA/CD协议的要点 六、小结 一、局域网的特点 局域网具有如下主要优点&#xff1a; • 具有广播功能&#xff0c; 从一…

Linux系统Docker安装Drupal并配置数据库实现公网远程访问本地站点

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。它的学习…

【07】进阶html5

HTML5 包含两个部分的更新,分别是文档和web api 文档 HTML5 元素表 元素语义化 元素语义化是指每个 HTML 元素都代表着某种含义,在开发中应该根据元素含义选择元素 元素语义化的好处: 利于 SEO(搜索引擎优化)利于无障碍访问利于浏览器的插件分析网页新增元素 多媒体…

Spring6--基础概念

1. 概述 1.1. Spring是什么 Spring 是一套广泛应用于 Java 企业级应用开发领域的轻量级开源框架&#xff0c;由 Rod Johnson 创立&#xff0c;旨在显著降低 Java 企业应用的复杂性&#xff0c;缩短开发周期&#xff0c;并提升开发效率。Spring 不仅适用于服务器端开发&#x…

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

html5cssjs代码 035 课程表

html5&css&js代码 035 课程表 一、代码二、解释基本结构示例代码常用属性样式和装饰响应式表格辅助技术 一个具有亮蓝色背景的网页&#xff0c;其中包含一个样式化的表格用于展示一周课程安排。表格设计了交替行颜色、鼠标悬停效果以及亮色表头&#xff0c;并对单元格设…

关于alias、root的用法

关于alias、root的用法 root 语法&#xff1a;root path 默认值&#xff1a; root html 配置段&#xff1a; http,server,location,if 例子&#xff1a; 静态文件地址&#xff1a;/home/static/html/js/demo.html 用例1&#xff1a; 以请求http://example.com/js/demo.html为…

指路明灯,99%自动化测试从业者都该看的职业规划!

这篇文章将从以下三个方面来给大家介绍自动化测试&#xff0c;其中包含自动化测试从业者需要了解的知识和一些常见的思想误区&#xff0c;以及自动化测试行业的前景以及如何进阶 1.自动化测试的介绍&#xff1a; 自动化测试什么是&#xff0c;有哪些被称作自动化测试&#xf…

2024-03-20 作业

作业要求&#xff1a; 1> 创建一个工人信息库&#xff0c;包含工号&#xff08;主键&#xff09;、姓名、年龄、薪资。 2> 添加三条工人信息&#xff08;可以完整信息&#xff0c;也可以非完整信息&#xff09; 3> 修改某一个工人的薪资&#xff08;确定的一个&#x…

C++利用开散列哈希表封装unordered_set,unordered_map

C利用开散列哈希表封装unordered_set,unordered_map 一.前言1.开散列的哈希表完整代码 二.模板参数1.HashNode的改造2.封装unordered_set和unordered_map的第一步1.unordered_set2.unordered_map 3.HashTable 三.string的哈希函数的模板特化四.迭代器类1.operator运算符重载1.动…

算法系列--递归

一.如何理解递归 递归对于初学者来说是一个非常抽象的概念,笔者在第一次学习时也是迷迷糊糊的(二叉树遍历),递归的代码看起来非常的简洁,优美,但是如何想出来递归的思路或者为什么能用递归这是初学者很难分析出来的 笔者在学习的过程中通过刷题,也总结出自己的一些经验,总结来…

Beamer模板——基于LaTeX制作学术PPT

Beamer模板——基于LaTeX制作学术PPT 介绍Beamer的基本使用安装和编译用于学术汇报的模板项目代码模板效果图 Beamer的高级特性动态效果分栏布局定理环境 介绍 在学术领域&#xff0c;演示文稿是展示和讨论研究成果的重要方式。传统的PowerPoint虽然方便&#xff0c;但在处理复…

基于python+vue家政服务系统flask-django-php-nodejs

相比于以前的传统手工管理方式&#xff0c;智能化的管理方式可以大幅降低家政公司的运营人员成本&#xff0c;实现了家政服务的标准化、制度化、程序化的管理&#xff0c;有效地防止了家政服务的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、准确地…