05-shell编程-比较判断

一、判断文件/目录是否存在

1,判断文件是否存储在

[root@gong ~]# [ -f /etc/hosts ] && echo "它存在" || echo "它不存在"
它存在
[root@gong ~]# [ -f /etc/hostssssss ] && echo "它存在" || echo "它不存在"
它不存在

2,判断目录是否存在

[root@gong ~]# [ -d /etc/ ] && echo "它存在" || echo "它不存在"
它存在
[root@gong ~]# [ -d /etcccc/ ] && echo "它存在" || echo "它不存在"
它不存在

二、判断是否有权限

1,执行权限

[root@gong ~]# [ -x /etc/hosts ] && echo "有执行权限" || echo "没有执行权限"
没有执行权限

2,读权限

[root@gong ~]# [ -r /etc/hosts ] && echo "有读权限" || echo "没有读权限"
有读权限

3,写/编辑权限

[root@gong ~]# [ -w /etc/hosts ] && echo "有编辑权限" || echo "没有编辑权限"
有编辑权限

4,判断文件大小

判断文件大小是否>0,;

[root@gong ~]# [ -s /etc/hosts ] && echo "有内容存在" || echo "没有内容存在"
有内容存在

三、是否存在

判断是否存在,不论是文件还是目录;

[root@gong ~]# [ -e /etc/hosts ] && echo "存在" || echo "不存在"
存在
[root@gong ~]# [ -e /etc/ ] && echo "存在" || echo "不存在"
存在

四、判断是否为软连接

[root@gong ~]# ln -s /etc/hosts  /root/xinjizhiwa
[root@gong ~]# ll
总用量 0
lrwxrwxrwx. 1 root root 10 3月  21 14:38 xinjizhiwa -> /etc/hosts

[root@gong ~]# [ -L /root/xinjizhiwa ] && echo "是软连接" || echo "不是软连接"
是软连接

五、文件时间比较

1,时间比对-谁最新

[root@gong ~]# touch 1.txt
[root@gong ~]# touch 2.txt
[root@gong ~]# [ 1.txt -nt 2.txt ] 
[root@gong ~]# [ 1.txt -nt 2.txt ] && echo "yes" || echo "no" 
no

2,时间比对-谁更老

[root@gong ~]# [ 1.txt -ot 2.txt ] && echo "yes" || echo "no" 
yes

六、对比字符串

1,对比两个字符串是否相等

[root@gong ~]# n=xinjizhiwa
[root@gong ~]# [ "$n" = "xjzw" ] && echo "相等" || echo "不相等"
不相等

2,对比两个字符串是否不相等

[root@gong ~]# [ "$n" != "xjzw" ] && echo "不相等" || echo "相等"
不相等

3,字符串是否为空

场景:判断用户是否什么都没有输入;

[root@gong ~]# n=xinjizhiwa

[root@gong ~]# [ -z "$n" ] && echo "是空的" || echo "不是空的"
不是空的

· 设置一个空变量

[root@gong ~]# unset m

· 判断是否为空

[root@gong ~]# [ -z "$m" ] && echo "是空的" || echo "不是空的"
是空的

[root@gong ~]# [ -n "$m" ] && echo "非空的" || echo "是空的"
是空的

七、整数比较大小

1,大于

[root@gong ~]# [ 3 -gt 1 ] && echo "成立" || echo "不成立"
成立
[root@gong ~]# [ 3 -gt 6 ] && echo "成立" || echo "不成立"
不成立

不能用小数比较哦

[root@gong ~]# [ 3.5 -gt 6 ] && echo "成立" || echo "不成立"
-bash: [: 3.5: 期待整数表达式
不成立

另一种方式表示大于,不建议大家使用;

[root@gong ~]# [[ 3 > 6 ]] && echo "成立" || echo "不成立"
不成立
[root@gong ~]# [[ 6 > 6 ]] && echo "成立" || echo "不成立"
不成立
[root@gong ~]# [[ 6 >= 6 ]] && echo "成立" || echo "不成立"
-bash: 条件表达式中有语法错误
-bash: `6' 附近有语法错误

2,小于

[root@gong ~]# [ 3 -lt 6 ] && echo "成立" || echo "不成立"
成立
[root@gong ~]# [ 3 -lt 1 ] && echo "成立" || echo "不成立"
不成立

3,等于

[root@gong ~]# [ 3 -eq 1 ] && echo "成立" || echo "不成立"
不成立
[root@gong ~]# [ 3 -eq 3 ] && echo "成立" || echo "不成立"
成立

4,大于等于

[root@gong ~]# [ 3 -ge 3 ] && echo "成立" || echo "不成立"
成立

5,小于等于

[root@gong ~]# [ 3 -le 3 ] && echo "成立" || echo "不成立"
成立

6,不等于

[root@gong ~]# [ 3 -ne 3 ] && echo "成立" || echo "不成立"
不成立

八、本节总结

1,是否存在

-f      #文件是否存在

-d     #目录是否存在

-e     #文件或目录是否存在

-x     #是否有执行权限

-r     #是否有读权限

-w    #是否有写编辑权限

-s     #大小是否为0;

-nt    #文件目录比较,时间是否为新

-ot    #文件目录比较,时间是否为旧

2,字符串对比

=     #字符串是否相等

!=    #字符串是否不相等

-z    #字符串是否为空

#####################

unset   变量     #变量设置为空

3,整数比较大小

[  *  eq  *  ]  #两边是否相等

[  *   gt  *  ]  #是否大于

[  *   lt   *  ]   #是否小于

[  *  ge  *  ]   #是否大于等于

[  *   le  *  ]   #是否小于等于

[  *  ne  *  ]   #是否不等于

[[     *   >    *    ]]       #是否大于

[[     *   <    *    ]]       #是否小于

[[     *   >=    *    ]]       #是否大于等于

[[     *   <=    *    ]]       #是否小于等于

[[     *   =    *    ]]       #是否等于

[[     *   !=    *    ]]       #是否不等于

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

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

相关文章

基于python+vue智慧农业小程序flask-django-php-nodejs

传统智慧农业采取了人工的管理方法&#xff0c;但这种管理方法存在着许多弊端&#xff0c;比如效率低下、安全性低以及信息传输的不准确等&#xff0c;同时由于智慧农业中会形成众多的个人文档和信息系统数据&#xff0c;通过人工方法对知识科普、土壤信息、水质信息、购物商城…

AVL树的实现

概念 1.为了解决二叉搜索树有序插入&#xff0c;会退化成链表&#xff0c;导致效率低下。 AVL树的左右子树高度差不超过1&#xff0c;所以AVL树的查找效率为logn。 2.在左子树高度增加&#xff0c;平衡因子减一&#xff0c;在右子树高度增加&#xff0c;平衡因子加一。 节点…

C# winform修改背景图 控件双向绑定 拖拽打开图片

修改背景图 说明 这里我准备基于百度飞桨PaddleSeg项目的人像分割模块做一个人像抠图&#xff0c;这里顺便用上了双向绑定和图片拖拽打开。 下面就是示例&#xff1a; 用颜色替换 用背景图替换 保存成功后的图片 一、使用百度飞桨PaddleSeg //初始化 引擎engine new Padd…

如何配置VS Code环境

一、下载 Visual Studio Code - Code Editing. Redefined 二、傻瓜式安装 如果出现没有安装路径选择&#xff0c;则看下面图片 经过上面操作后&#xff0c;可以修改路径 三、按照下面步骤配置环境变量即可 Visual Studio Code 中的 C 和 MinGW-w64 入门

数据库学习之数据库基本知识

什么是数据库 数据&#xff1a;描述事物地符号记录&#xff0c;包括单不限于数字、文字、图形、图像、声音、语言等。数据有多种形式&#xff0c;这个内容都可以经过式子化地处理后存入计算机。 数据库&#xff1a;数据仓库。是长期存放再计算机内、有组织、可共享地大量数据…

UE5 C++增强输入

一.创建charactor&#xff0c;并且包含增强输入相关的头文件 1.项目名.build.cs。添加模块“EnhancedInput”&#xff0c;方便找到头文件和映射的一些文件。 PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine&q…

在基于Android相机预览的CV应用程序中使用 OpenCL

查看&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9.0在Android 开发简介 下一篇&#xff1a;在 MacOS 中安装 本指南旨在帮助您在基于 Android 相机预览的 CV 应用程序中使用 OpenCL ™。教程是为 Android Studio 20…

用图解说明mysql 行锁加锁规则

加锁原则 原则 1&#xff1a;加锁的基本单位是 next-key lock。希望你还记得&#xff0c;next-key lock 是前开后闭区间。原则 2&#xff1a;查找过程中访问到的对象才会加锁。优化 1&#xff1a;索引上的等值查询&#xff0c;给唯一索引加锁的时候&#xff0c;next-key lock …

【Java】Oracle发布Java22最新版本

甲骨文&#xff08;ORACLE&#xff09;已经于2023年3月19日正式发布了最新版本的JDK&#xff0c;版本号&#xff1a;22 根据官方声明&#xff0c;Java 22 (Oracle JDK 22) 在性能、稳定性和安全性方面进行了数千种改进&#xff0c;包括对Java 语言、其API 和性能&#xff0c;以…

python vtk读取vtk文件

参考&#xff1a; https://cloud.tencent.com/developer/ask/sof/101993637 方法一&#xff1a;使用pyvtk 要使用Python读取VTK文件&#xff0c;可以使用pyvtk库。首先&#xff0c;确保已经安装了pyvtk。如果没有安装&#xff0c;可以通过pip安装&#xff1a; csharp pip ins…

Github基本功能和使用技巧

基础功能 创建仓库&#xff08;Repository&#xff09;&#xff1a;在GitHub上创建一个新的仓库&#xff0c;可以通过点击页面右上角的“New”按钮开始。选择仓库的名称、描述和许可证等信息&#xff0c;并选择是否将仓库设置为公开或私有。 克隆仓库&#xff08;Clone&#x…

基于stable diffusion的IP海报生成

【AIGC】只要10秒&#xff0c;AI生成IP海报&#xff0c;解放双手&#xff01;&#xff01;&#xff01;在AIGC市场发展的趋势下&#xff0c;如何帮助设计工作者解放双手。本文将从图像生成方向切入&#xff0c;帮助大家体系化的学习Stable diffusion的使用&#xff0c;完成自有…

php 对接IronSource海外广告平台收益接口Reporting API

今天对接的是IronSource广告reporting api接口&#xff0c;拉取广告收益回来自己做统计。记录分享给大家 首先是文档地址,进入到IronSource后台就能看到文档地址以及参数&#xff1a; 文档地址&#xff1a;https://developers.is.com/ironsource-mobile/air/reporting/ 在这里插…

【Rust】——String集合

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

高新技术企业培育认定条件

高新技术企业认定申报条件主要包括企业基本条件、技术创新能力和成果、知识产权、人才队伍建设等方面。 1.企业基本条件 &#xff08;1&#xff09;具有独立法人资格&#xff1b; &#xff08;2&#xff09;注册地在中国境内&#xff1b; &#xff08;3&#xff09;注册资本…

Mybatis一级缓存和二级缓存区别

Mybatis一级缓存 1.为什么需要Mybatis一级缓存 当我们使用Mybatis进行数据库的操作时候&#xff0c;会创建一个SqlSession来进行一次数据库的会话&#xff0c;会话结束则关闭SqlSession对象。 如果我们很有可能多次查询完全相同的sql语句&#xff0c;每一次查询都查询一次数据…

基于Python3的数据结构与算法 - 16 链表

目录 链表 1. 创建链表 2. 链表的插入和删除 3. 双链表 4. 链表总结 链表 链表是由一系列节点组成的元素集合。每个节点包含两部分&#xff0c;数据域item和指向下一个节点得指针next。通过节点之间的相互连接&#xff0c;最终串联成一个链表。 class Node:def __init…

如何利用人工智能技术实现企业营销效率提升10倍(上)

01. 品牌营销面临越来越大的挑战 在当前行业下行周期&#xff0c;品牌营销正面临着前所未有的挑战。首当其冲的是高昂的营销费用&#xff0c;这使得企业在投入资源时更加谨慎&#xff0c;同时也需要寻求更加高效的营销手段来确保投入产出比的最大化。其次&#xff0c;由于缺乏…

Linux系统本地部署Docker Compose UI服务结合内网穿透实现公网访问

文章目录 1. 安装Docker2. 检查本地docker环境3. 安装cpolar内网穿透4. 使用固定二级子域名地址远程访问 Docker Compose UI是Docker Compose的web界面。这个项目的目标是在Docker Compose之上提供一个最小的HTTP API&#xff0c;同时保持与Docker Compose CLI的完全互操作性。…

探讨苹果 Vision Pro 的空间视频(术语辨析、关键技术、思考)

背景:一位资深视频技术从业者在 Pixvana 工作,积累了丰富的捕获、处理、编码、流传和播放空间媒体经验。 一、术语 空间视频:传统的 3D 视频,呈矩形,包含左右眼视图,如 iPhone15 Pro 和 Vision Pro 可录制。沉浸式视频:非矩形的环绕式视频体验,通常由两个或多个传感器…