当前位置: 首页 > news >正文

Linux:shell脚本:基础使用(2)

test命令

格式1:test  条件表达式

格式2:[  条件表达式  ]  (前后至少应有一个空格)

常用的测试操作符

-d:测试是否为目录(Directory)

-e:测试目录或文件是否存在(Exist)

-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)

-w:测试当前用户是否有权限写入(Write)

-x:测试当前用户是否有权限执行(eXcute)

test -e /etc/passwd

# 测试/etc/passwd这个文件或者目录是否存在 

echo $?

输出0表示条件成立,也就是有这个文件或者目录

 但是在实际中我们不经常使用这种语法,我们常用的语法为[  条件表达式  ]这种格式

  [  -d /media/cdrom  ]

 # 是否有/media/cdrom这个文件

echo $?

只有0代表成立,也就是有,非0的任何数字都是无(不成立) 

 

这个就是文件存在

 附加:(提前看看后面会讲)

[ -d /etc/sysconfig/ ] && echo "YES"

 

&&逻辑与,“而且”的意思

意思就是只要成立了就一起执行与后面的 


整数值比较 

格式:[  整数1  操作符  整数2  ]

    常用的测试操作符

-eq:等于(Equal)

-ne:不等于(Not Equal)

-gt:大于(Greater Than)

-lt:小于(Lesser Than)

-le:小于或等于(Lesser or Equal)

-ge:大于或等于(Greater or Equal)

cat /etc/passwd | wc -l

# 查看有几行

[ $(cat /etc/passwd | wc -l) -gt 10 ] && echo "用户数量大于10"

[ $(cat /etc/passwd | wc -l) -ge 27 ] && echo "用户数量大于等于27"

 

aaa=$(free -m | grep -i "mem" | awk '{print $4}')

# 查看空闲内存将值赋予给变量aaa

[ $aaa -lt 10240 ] && echo "空闲内存为 ${aaa}MB"

# 空闲内存是否 < 10240MB 如果小于了就会执行后面的话


 字符串比较

格式1:[  字符串1  =  字符串2 ]                      [  字符串1  !=  字符串2 ]

格式2:[  -z  字符串 ]

常用的测试操作符

=:字符串内容相同

!=:字符串内容不同,! 号表示相反的意思

-z:字符串内容为空

echo $LANG

  

查看一下当前的系统语言环境

 [ $LANG !=  "en.US" ] && echo  "系统语言不是en.US"

# 如果输出的字符串不是en.US则执行后面的语句


附加:(提前看看后面会讲)

read -p "是否覆盖现有文件(yes/no)?"  asd
[ $asd = "yes" ] && echo "覆盖" || echo "不覆盖"

如果交互输入了yes那执行第二句时候就会输出覆盖,相反则不覆盖

http://www.lryc.cn/news/113188.html

相关文章:

  • Mir 2.14 正式发布,Ubuntu 使用的 Linux 显示服务器
  • 合规管理,企业生存之本!这4大方法,助你规避风险
  • 码云 Gitee + Jenkins 配置教程
  • Java重启
  • ReactNative 学习笔记
  • 小研究 - MySQL 数据库下存储过程的综合运用研究
  • CentOS 7 构建 LVS-DR 群集 nginx负载均衡
  • ESP32学习笔记(52)————三轴加速度ADXL345使用(SPI方式)
  • Camunda 7.x 系列【4】 Camunda Modeler 功能介绍
  • 呼叫中心系统管理和优化的关键指标
  • UML箭头汇总
  • 【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析
  • 高效管理,PDM系统与BOM系统携手合作
  • Elasticsearch 使用scroll滚动技术实现大数据量搜索、深度分页问题 和 search
  • 了解Swarm 集群管理
  • 【Docker】Docker私有仓库的使用
  • 基于arcFace+faiss开发构建人脸识别系统
  • C#设计模式(15)命令模式(Command Pattern)
  • 快速排序和qsort函数详解详解qsort函数
  • 搭建 elasticsearch8.8.2 伪集群 windows
  • C++ 运算符重载为成员函数
  • 51单片机程序烧录教程
  • Linux C++ 链接数据库并对数据库进行一些简单的操作
  • Linux进程间通信--msgsnd函数的作用
  • P1629 邮递员送信(最短路)(内附封面)
  • 网络安全--原型链污染
  • Harbor企业镜像仓库部署
  • 【AI】《动手学-深度学习-PyTorch版》笔记(十一):分类问题-softmax回归
  • 【排序算法略解】(十种排序的稳定性,时间复杂度以及实现思想)(含代码)(完工于2023.8.3)
  • 学编程实用网站