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

简介: 多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一 条命令执行失败后,才执行下一条命令)、-eq 等于(equal) -ne 不等于(not equal)-lt 小于(less than) -le 小于等于(less equal)-gt 大于(greater than) -ge 大于等于(greater equal)注:如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等。 -r 有读的权限(read)-w 有写的权限(write)-x 有执行的权限(execute)

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

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

目录
相关文章
|
7月前
|
人工智能 机器人 Shell
【shell】shell条件判断、循环语句、基本运算符
【shell】shell条件判断、循环语句、基本运算符
|
7月前
|
Shell Linux
Linux下的Shell基础——变量、运算符、条件判断(二)
Linux下的Shell基础——变量、运算符、条件判断(二)
129 0
|
7月前
|
Java 大数据 Shell
Shell基础学习---2、运算符、条件判断、流程控制(第一天学习)
大数据开发学习 Shell基础学习---2、运算符、条件判断、流程控制
|
2月前
|
Java Unix Shell
Shell 基本运算符
10月更文挑战第3天
17 0
|
6月前
|
Shell
Shell [[]] 命令:条件判断的升级版
`[[ ]]` 是 Bash 中增强型的条件判断命令,提供比 `[ ]` 更多的灵活性,如无需引号包裹变量、直接字符串比较及正则支持。例如: ```markdown - 不加引号比较:`[[ -z $str1 ]]` - 逻辑运算:`[[ -z $str1 ]] || [[ -z $str2 ]]` - 正则匹配:`[[ $phone =~ ^1[0-9]{10}$ ]]` ``` 它不支持 `-a` 和 `-o`,但能用 `&&` 和 `||` 进行逻辑操作。用于复杂字符串验证和文件处理时非常有用。
37 0
|
6月前
|
Shell Windows
Shell test [] 命令:条件判断的艺术
`test` 命令在Shell脚本中用于条件检测,涉及数值、字符串和文件比较。例如,`test $a -eq $b` 检查两个数是否相等;`-e` 检查文件是否存在;`-w` 检查文件是否可写。数值比较不支持 `&gt;=` 和 `&lt;=`,需用 `-ge` 和 `-le`。字符串比较时注意空值,使用双引号。逻辑运算包括 `-a`(与)、`-o`(或)和 `!`(非)。文件类型和权限检测也是`test`的重要用途。
73 0
|
6月前
|
Shell Linux BI
linux shell脚本中 if 条件判断
linux shell脚本中 if 条件判断
40 0
|
7月前
|
运维 Shell C语言
第三章 Shell表达式与运算符
第三章 Shell表达式与运算符
|
7月前
|
Shell Linux C语言
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
99 0
|
7月前
|
Shell
在Shell脚本中,使用`if`语句进行复杂的条件判断
在Shell脚本中,使用`if`语句进行复杂的条件判断
231 2