Shell运算符、$((运算式))” 或 “$[运算式]、expr方法、条件判断、test condition、[ condition ]、两个整数之间比较、按照文件权限进行判断、按照文件类型进行判断

简介: Shell运算符、$((运算式))” 或 “$[运算式]、expr方法、条件判断、test condition、[ condition ]、两个整数之间比较、按照文件权限进行判断、按照文件类型进行判断

@[toc]
如果想看更详细的Shell总结请到我之前写的博客https://blog.csdn.net/Redamancy06/article/details/126048299

1.运算符

1.1基本语法

“$((运算式))” 或 “$[运算式]”

1.1.1expr方法

用expr输出+、-、*、%
符号(+、-、*、%)两边需要空格隔开
用*的时候需要用这个\,因为*的用处很多,所以需要区分

在这里插入图片描述

1.1.2用expr给a赋值

需要使用命令替换

a=$(运算式)或者用a=`运算式`

在这里插入图片描述

1.1.3$((运算式)) 或 $[运算式]

在这里插入图片描述

1.1.4用脚本计算两个数的和

在这里插入图片描述

在add.sh中写如下代码
在这里插入图片描述

在这里插入图片描述

2.条件判断

2.1基本语法

1)test condition
2)[ condition ](注意 condition 前后要有空格)
注意:条件非空即为 true,[ atguigu ]返回 true,[ ] 返回 false。

2.2常用判断条件

2.2.1两个整数之间比较

-eq 等于(equal) -ne 不等于(not equal)
-lt 小于(less than) -le 小于等于(less equal)
-gt 大于(greater than) -ge 大于等于(greater equal)
注:如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等。

2.2.2按照文件权限进行判断

-r 有读的权限(read)
-w 有写的权限(write)
-x 有执行的权限(execute)

2.2.3按照文件类型进行判断

-e 文件存在(existence)
-f 文件存在并且是一个常规的文件(file)
-d 文件存在并且是一个目录(directory)

2.2.4测试

2.2.4.1test condition

在这里插入图片描述

测试他输出的是正确还是错误使用$?来判断,输出0则表达式为真,输出1表达式为假

2.2.4.2[ condition ](注意 condition 前后要有空格)

在这里插入图片描述
用[]的时候,里面的等于号两边一定要用空格空开,否则他会识别为一个整体条件非空即为 true

在这里插入图片描述
当[]里面有东西事,则为真,只有空格时为假,如果前后不空格的话就未找到命令

2.2.4.3在[]里面使用=和!=

在这里插入图片描述

2.2.4.4-eq 等于(equal) -ne 不等于(not equal)

如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等

在这里插入图片描述

2.2.4.5-lt 小于(less than) -le 小于等于(less equal)

不能用< 和<=,因为在linux里表示输入重定向
在这里插入图片描述
在双小括号里可以使用(> < >= <=号)

在这里插入图片描述

2.2.4.6-gt 大于(greater than) -ge 大于等于(greater equal)

不能用>和>=,因为在linux里>表示输出重定向
在这里插入图片描述

在双小括号里可以使用(> < >= <=号)

在这里插入图片描述

2.2.4.7判断文件权限、 -r 有读的权限(read)、 -w 有写的权限(write) 、 -x 有执行的权限(execute)

在这里插入图片描述

2.2.4.8判断文件类型、-e 文件存在(existence)、-f 文件存在并且是一个常规的文件(file)、-d 文件存在并且是一个目录(directory)

在这里插入图片描述

2.2.4.9多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一 条命令执行失败后,才执行下一条命令)

在这里插入图片描述

如果想看更详细的Shell总结请到我之前写的博客http://t.csdn.cn/cQArA

相关文章
|
2月前
|
Shell Linux
Linux下的Shell基础——变量、运算符、条件判断(二)
Linux下的Shell基础——变量、运算符、条件判断(二)
46 0
|
5天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
2天前
|
运维 Shell C语言
第三章 Shell表达式与运算符
第三章 Shell表达式与运算符
|
2天前
|
监控 Shell
生产环境Shell脚本Ping监控主机是否存活(多种方法)
生产环境Shell脚本Ping监控主机是否存活(多种方法)
|
2天前
|
运维 Shell
Shell脚本判断IP是否合法性(多种方法)
Shell脚本判断IP是否合法性(多种方法)
|
24天前
|
Shell
【shell】shell命令行放在变量中执行以及变量的常用方法
【shell】shell命令行放在变量中执行以及变量的常用方法
|
1月前
|
Shell 程序员 Linux
【Shell 编程指南】shell运算操作符之(())
【Shell 编程指南】shell运算操作符之(())
19 0
|
1月前
|
算法 Shell Linux
【Shell 命令集合 文档编辑 内建命令】Linux数值运算和赋值操作 let命令使用指南
【Shell 命令集合 文档编辑 内建命令】Linux数值运算和赋值操作 let命令使用指南
26 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
25 0
|
2月前
|
Shell
在Shell脚本中,使用`if`语句进行复杂的条件判断
在Shell脚本中,使用`if`语句进行复杂的条件判断
35 2