shell判断语句
1.test命令 也可以用[ ]来表示
返回值为0时为true,返回值为1时为false。
例1:str1=aaa,str2=bbb
1)判断字符串是否为空(省略了-n选项,-n选项是不为空,-z选项为空)
[root@xiaoxiao ~]# str1=aaa
[root@xiaoxiao ~]# str2=bbb
[root@xiaoxiao ~]# [ $str1 ]
[root@xiaoxiao ~]# echo $? [root@xiaoxiao ~]# [ -z $str1 ]
[root@xiaoxiao ~]# echo $? [root@xiaoxiao ~]# [ -n $str1 ]
[root@xiaoxiao ~]# echo $?
2)判断两个字符串是否相等
[root@xiaoxiao ~]# [ $str1 = $str2 ]
[root@xiaoxiao ~]# echo $?
3)判断两个数字时候相等
[root@xiaoxiao bin]# str1=
[root@xiaoxiao bin]# str2=
[root@xiaoxiao bin]# [ $str1 -eq $str2 ] && echo equal || echo noequal
noequal
[root@xiaoxiao bin]# str1=
[root@xiaoxiao bin]# [ $str1 -eq $str2 ] && echo equal || echo noequal
equal
2.逻辑运算符
# help let
&与
|或
!非
&&逻辑与 (cmd1 && cmd2,当cmd为ture时执行cmd2,为false时不继续执行cmd2)
||逻辑或(cmd1 && cmd2,当cmd1为fasle时执行cmd2,为true时不继续执行cmd2)
例:str1=aaa;str2=bbb
[root@xiaoxiao ~]# echo $str1 $str2
aaa bbb
[root@xiaoxiao ~]# [ $str1 = $str2 ] && echo truestrs || echo falsestrs
falsestrs
[root@xiaoxiao bin]# str1=aaa;str2=aaa
[root@xiaoxiao bin]# [ $str1 = $str2 ] && echo truestrs || echo falsestrs
truestrs
判断str1与str2两个字符串是否相等,cmd1 && cmd2 || cmd3 如果cmd1为真则执行cmd2,如果cmd1 && cmd2 命令cmd1为假则不行cmd2;此时将cmd1 && cmd2 的运算返回值 || cmd3逻辑或时,cmd1 && cmd2 的返回值是false,则执行cmd3。
^异或(可以实现两个值得互换,在let运算中)
[root@xiaoxiao bin]# str1=;str2=
[root@xiaoxiao bin]# str1=$[str1^str2];str2=$[str1^str2];str1=$[str1^str2]
[root@xiaoxiao bin]# echo $str1 $str2
判断是否是数字
[[ "$n" =~ ^[[:digit:]]+$ ]] && echo digit || echo "no digit";[[ "$n" =~ ^[0-9]+$ ]] && echo digit || echo "no digit"
"[]"中括号中的变量最好用引号,避免造成语法的错误
判断后缀
# .表示一个字符 .*表示任意字符 ..*表示至少一个字符
[[ $filename =~ ..*\.sh$ ]] && echo sh ||echo "not sh"
shell判断语句的更多相关文章
- 【转】 shell 判断语句
转自:http://see.sl088.com/wiki/Shell_%E4%B8%AD%E6%8B%AC%E5%8F%B7 test 和 [] test -z string 判定字串是否為 0 ?若 ...
- shell 判断语句
1.字符串判断 str1 = str2 当两个串有相同内容.长度时为真str1 != str2 当串str1和str2不等时为真-n str1 当串的长度大于0时为真(串非空)-z str1 当串的长 ...
- 6.shell判断语句
[ condition ](注意condition前后要有空格),可以使用$?验证(0为true,>1为false) 两个整数的比较:=:字符串比较-lt:小于-gt:大于-le:小于等于-ge ...
- linux shell中的条件判断语句
http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...
- shell判断文件,目录是否存在或者具有权限的代码
核心代码 #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的 ...
- Unix shell判断和比较
1. shell 的$! ,$?, $$,$@ $n $1 the first parameter,$2 the second... $# The number of c ...
- Linux Shell系列教程之(九)Shell判断 if else 用法
本文是Linux Shell系列教程的第(九)篇,更多shell教程请看:Linux Shell系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.今天就给大家介绍下Shel ...
- shell判断文件,目录是否存在或者具有权限 (转载)
转自:http://cqfish.blog.51cto.com/622299/187188 文章来源:http://hi.baidu.com/haigang/blog/item/e5f582262d6 ...
- shell判断和比较
http://blog.chinaunix.net/uid-7553302-id-183648.html 1 shell 的$! ,$?, $$,$@ $n $1 the first ...
随机推荐
- Codeforces Round #530 (Div. 1) 1098A Sum in the tree
A. Sum in the tree Mitya has a rooted tree with nn vertices indexed from 11 to nn, where the root ha ...
- Halloween Costumes 玄学题
传送门 太难了,完全不懂 设\(dp[i][j]\)为第i天到第j天的最少代价 \(dp[i][j]=dp[i][j-1]+1\)(第j天多穿一件衣服) \(dp[i][j]=min(dp[i][j] ...
- 软件工程复习 WHUT
软件过程模型: 瀑布模型:界限分明的独立阶段,计划驱动的软件过程.规范软件开发活动 (例如:可分为分析.开发.维护三个阶段) 也称生命周期模型.线性模型,采用结构化分析.设计.编程技术 不足的地方:知 ...
- 【HBase】表模型和基本操作介绍
目录 HBase表模型 常用Shell操作 HBase表模型 创建一个hbase表,必须要有表名和列族名 列族 -- columnFamily,就是上图中的Column Family1 userInf ...
- 假如用王者荣耀的方式学习webpack
英雄介绍 崴博.派克诞生于遥远西方的勇士之地,拥有着高超的机械技艺,善于运用各种工具来实现一些看似不可能完成的事.游历王者大陆时机缘巧合遇到了年轻的墨子,与之成为好友.后协助大宗师墨子建造了大陆第一雄 ...
- GNU ARM 汇编基础
ARM GNU汇编基础 0 前言 全文补充提醒: 笔者在阅读ARM官方文档及查阅实际的u-boot源码中的汇编代码后,发现了一些不同于ARM官方文档中的汇编语法,查阅相关资料后,才发现主要由于汇编器的 ...
- python语法学习第十一天--迭代器
迭代:类似循环,这一次的值作为下一次迭代的开始值 BIF:iter():将某个可以作为迭代器的容器变为迭代器 next():做下一次迭代 当next()到最后一个时,抛出StopIteration ...
- [hdu5593 ZYB's Tree] 树上统计
题意:给1棵N(≤500,000)个节点的树,每条边边权为1,求距离每个点距离不超过K(K≤10)的点的个数的xor和. 思路:由于K很小,可以考虑把距离作为状态的一部分,然后研究父子之间状态的联系. ...
- @Resource、@Autowired等几个注解的区别
1.@Resource注解和@Autowired的区别 @Autowired注解:是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false ...
- mp4封装格式各box类型讲解及IBP帧计算
mp4封装格式各box类型讲解及IBP帧计算 目录 mp4封装格式各box类型讲解及IBP帧计算 box ftyp box moov box mvhd box (Movie Header Box) t ...