单/双中括号与测试条件

测试命令


tesst
[]内置命令
[[]]bash中的关键字

单中括号


格式[#express1#op#express2#]
注意:
  其中#代表括号不能省略
  不能匹配模式
  变量引用应用双引号括起,尤其当变量引用有空格时
  与或非形式-a –o -not
  常量应用单/双引号括起
  整数比较时,< == ...需用反斜号转义,相当于-lt -eq ...

[root@ZYB ~]# zyb="haha haha"
[root@ZYB ~]# echo $zyb
haha haha
[root@ZYB ~]# [ $zyb == "haha haha" ]
-bash: [: too many arguments
[root@ZYB ~]# echo $?
2
[root@ZYB ~]# [ "$zyb" == "haha haha" ]
[root@ZYB ~]# echo $?
0
[root@ZYB ~]# [ "$zyb" != "haha haha" ]
[root@ZYB ~]# echo $?
1
[root@ZYB ~]# [ "$zyb" != "hahahaha" ]
[root@ZYB ~]# echo $?
0
[root@ZYB ~]# [ "$zyb" == "hahahaha" ] ; echo $?
1
\#使用管道输出测试结果有问题`
[root@ZYB ~]# [ "$zyb" == "hahahaha" ] | echo $?
0

双中括号


格式[[#pattern1#op#pattern2#]]
注意:
  其中#代表括号不能省略
  可用于模式匹配,支持正则表达式
  变量引用最好用双引号括起,匹配的模式中的单双引号都代表符号自身
  与或非形式&& || !
  整数比较时,< == ...需用反斜号转义,相当于-lt -eq ...

[root@ZYB ~]# zyb="\"haha haha\""
[root@ZYB ~]# echo $zyb
"haha haha"
[root@ZYB ~]# [[ $zyb == ?haha?haha? ]] ; echo $?
0
[root@ZYB ~]# [[ "$zyb" == ?haha?haha? ]] ; echo $?
0
[root@ZYB ~]# [[ "$zyb" == "haha?haha" ]] ; echo $?
1

算术表达


let var_name=算术表达式
let var_name+=valuelet不能省略
let var_name++let不能省略
var_name=$[算术表达式]算术表达式空格较随意
var_name=$((算术表达式))算术表达式空格较随意
var_name=${var_name:-value}var_name非空保留原值;var_name空赋值value

[root@ZYB ~]# num=1+2; echo $num
1+2
[root@ZYB ~]# let num=1+2 ; echo $num
3
[root@ZYB ~]# var_name=1; echo $var_name 
1
[root@ZYB ~]# let var_name+=2; echo $var_name 
3
[root@ZYB ~]# var_name+=2 ; echo $var_name 
32

测试条件


布尔运算:与&&||!
组合条件测试:与-a-o-not
二元整数测试:num1 op num2
  -eq等于  -ne不等于
  -le小于等于  -ge大于等于  -lt小于  -gt大于
双目字符测试:str1 op str2
  ==等于  !=<>不等于  >大于  <小于
  =~左侧是字符串,右侧是一个模式,判断左侧的字符串能否被右侧的模式所匹配,通常只在[[]]中使用,模式中可以使用行首、行尾锚定符,但是模式不要加引号
单目字符测试:
  -n str不空为真,空为假
  -z str空为真,不空为假
单目文件测试op /path/to/somefile
  -e文件是否存在  -a同前  -f普通文件  -d目录
  -b存在且块设备  -c存在且字符设备  -h/-L存在且符号链接
  -p存在且管道  -S存在且套接字  -s存在且不为空
  -r存在且有读权限  -w存在且有写权限  -x存在且执行权限
双目文件测试file1 op file2
  -ntfile1比file2新
  -otfile1比file2老
  -effile1与file2是否指向同一个文件,包括软硬链接

转载于:https://www.cnblogs.com/hesper/p/8901774.html

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

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

相关文章

暗时间--平凡与优秀间的距离

每个人都希望&#xff0c;在他所从事的领域很优秀&#xff0c;那么如何才能优秀呢&#xff1f;有人做过一个研究&#xff0c;说那些优秀的音乐家&#xff0c;在他们成名之前&#xff0c;已经训练过10000小时。有人可能成功得早&#xff0c;如莫扎特16岁&#xff0c;有些可能需要…

IP分组

IP分组就是根据Ip地址来进行分组&#xff0c;目的可以是为了对不同 的地址组分配不同的带宽&#xff08;限速&#xff09;配置地址组时&#xff0c;其输入格式为A.B.C.D-A.B.C.E&#xff0c;例如&#xff1a;192.168.1.1-192.168.1.250

python3基础3--数据类型--数据运算--表达式if -else-while-for

一、python3 数据类型 1.1 数字例如&#xff1a;1,2,3,4等1.2 int&#xff08;整型&#xff09; 在32位机器上&#xff0c;整数的位数为32位&#xff0c;取值范围为-2**31&#xff5e;2**31-1&#xff0c;即-2147483648&#xff5e;2147483647在64位系统上&#xff0c;整数的位…

spark java教程_(Spark)学习进度十四(Spark之Java独立应用编程)

环境如下:(更新了林子雨教程中不可使用的部分) Hadoop 2.6.0以上 java JDK 1.7以上 Spark 3.0.0-preview2 二、java独立应用编程(在下载依赖jar包的过程中如遇到卡顿现象可以Ctrl+C停止下载,然后重新执行本条命令即可继续下载相应的依赖jar包) 1、安装maven ubuntu中没有自带…

nowcoderD Xieldy And His Password

题意:一个01序列,长度1e6,问有多少子串十进制是3的倍数 题解:DP[i][j]代表前i个并且以i为结尾,且十进制%3j的串的个数 #include<bits/stdc.h> #define maxn 1001000 using namespace std; char s[maxn]; long long dp[maxn][3], sum; int main(){while(~scanf("%s&q…

3D电视,你知道多少?

1.3D电视常见知识 系统概述篇 1、 什么是3D电视&#xff1f; 答&#xff1a;3D电视是一种能够模拟实际景物的真实空间关系的新型电视&#xff0c;它利用人眼的视觉特性产生立体感&#xff0c;让观众感受到观看的影像是具有深度特性的三维立体场景&#xff0c;观众对延伸于屏幕…

testng.xml文件配置

TestNG的DTD检查文件&#xff1a;http://testng.org/testng-1.0.dtd.php <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <!--suite&#xff08;测试套件&#xff09;为根…

什么是分组转发

分组转发(forwarding)是指在互联网络中路由器转发IP分组的物理传输过程与数据报转发机制。根据分组的目的Ip地址与源Ip地址是否属于同一个子网可分为直接转发和间接转发。 是直接转发还是间接转发&#xff0c;路由器需要根据分组的目的IP地址和源IP地址是否属于同一网络判断。目…

java 栈 先进后出_数据结构: 先进后出——堆栈

栈是一种常用的数据结构&#xff0c;在生活中经常遇到这样的例子&#xff0c;如铁路调度站。本节将详细介绍堆栈的实现过程。算法点拨(顺序栈)栈是一种重要的数据结构。从数据结构的角度看&#xff0c;栈也是线性表&#xff0c;其特殊性在于栈的基本操作是线性表操作的子集&…

Spring Boot—07应用application.properties中的配置

方法1Value("${test.msg}") private String msg;方法2Autowired private Environment env; String value env.getProperty("test.msg");方法3RequestMapping(path"/${query.all}.json", methodRequestMethod.GET) ResponseBody public List&…

skip与direct模式区别 ,他们与CBP的关系

1 CBP表示残差的编码状态,CBP一共6bit&#xff0c;低4位表示4个亮度8x8块,第4位表示U,第五位表示V,如果相应的位为"1", 表示此块有残差系数,反之没有残差,此宏块没有被编码.2 direct 是帧间宏块的一种预测模式&#xff0c;而不是宏块类型&#xff0c;而 S…

程序的装入和链接过程

从用户放入源程序进入操作系统到相应的装程序在机器上运行&#xff0c;所经历的主要阶段有编译阶段 链接阶段 装入阶段 和运行阶段

[零基础学JAVA]Java SE应用部分-34.Java常用API类库

本季目标1、StringBuffer类 2、Runtime 类 3、包装类与JDK 1.5的新特性——泛型 4、日期的操作类 5、Math类 6、Random类1、StringBuffer&#xff08;重点&#xff09; String 类的时候说过&#xff1a;String 类的内容一旦声明则不可改变&#xff0c;改变的只是其地址。…

我所理解的机器学习

各位请移步到【http://www.cnblogs.com/cchHers/p/8945908.html】转载于:https://www.cnblogs.com/cchHers/p/8933042.html

protobuf java文档_Java中使用Protobuf

gradle依赖库&#xff1a;implementation com.google.protobuf:protobuf-java:3.4.0implementation com.google.protobuf:protobuf-java-util:3.4.00.编写.proto文件&#xff0c;编译生成对应Java源文件&#xff1a;syntax "proto2";option java_generic_services …

python 数组和列表的区别

Python没有数组&#xff1a; 只有元组(tuple)和列表(list)&#xff1b;元组一旦创建不可改变&#xff0c;例如&#xff1a;aatuple(1,2,3)&#xff1b;元组不能追加(append)元素&#xff0c;弹出(pop)元素等&#xff1b;只能对元组中的元素进行索引aa[0]&#xff0c;不能对其中…

内存空间 逻辑地址空间 相对地址 绝对地址

内存空间&#xff08;物理空间或绝对空间&#xff09;&#xff1a;由一系列存储单元所限定 的地址范围。 逻辑地址空间&#xff08;地址空间&#xff09;&#xff1a;由程序中逻辑地址组成的地址范围。 相对地址&#xff08;逻辑地址&#xff09;&#xff1a;用户程序经编译后…

多租户表设计

2019独角兽企业重金招聘Python工程师标准>>> multi-tenant-databases-in-the-cloudtips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases团队开发框架实战—多租户支持转载于:https://my.oschina.net/yangjiandong/blog/1612626

java 读取webapp文件_在Java Webapp和Java Normal应用中读取公共外部属性文件

但是&#xff0c;我们有以下一些特殊要求&#xff0c;Webapp将部署到tomcat。格式为.jar的普通Java应用程序将放在/ myapp文件夹下myappConfig.property文件将放置在/ myapp下客户端计算机上的目录结构/myapp/myapp.jar/assests/myappConfig.property/tomcat/webapps/myapp.war…

CSS实现树形结构 + js加载数据

看到一款树形结构&#xff0c;比较喜欢它的样式&#xff0c;就参照它的外观自己做了一个&#xff0c;练习一下CSS。 做出来的效果如下&#xff1a; 拉莫小学 一年级 一班二班二年级三年级 一班二班三班树的dom结构&#xff1a; <div class"tree"><ul><…