shell判断语句
2024-08-30 11:06:10
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"
最新文章
- Ajax Post 与 Get 实例
- 时间复杂度&;空间复杂度
- Linux启动流程详解
- Notepad++ 几款实用插件简介,让你的 Notepad++ 如虎添翼
- light工具
- [转载]MongoDB学习(三):MongoDB Shell的使用
- js常见算法
- window.parent.document jquery
- CDN网络架构
- [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点
- BackgroundWorker 组件 -- 进度条
- 关于Segmentation fault (core dumped)
- js的 new Date()日期格式化显示以及js获取时间戳
- 团队项目开发特点以及NABCD分析总结
- byte[],bitmap,drawable之间的相互转换
- 变形CSS3
- python进程之间修改数据[Manager]与进程池[Pool]
- PHP中str_replace和substr_replace有什么区别?
- 从invalidAuthenticationToken❌想到需要忽略:verify_authenticity_token。
- Python流程控制-while循环-for循环
热门文章
- Clickhouse 时区转换
- Codeforces Round #509 (Div. 2) A. Heist 贪心
- 数学--数论-- HDU6298 Maximum Multiple 打表找规律
- SpringBoot返回JSON日期格式问题
- Java——Java实现生产者消费者
- 软件工程复习 WHUT
- ASP.NET Core on K8S学习之旅(12)Ingress
- 微信小程序云开发|Error: ResourceNotFound.FunctionName, FunctionName 指定的资源不存在。 (41cd9de8-ff9b-4b1e-a65e-81ae9
- 使用 PyCharm 添加 Django 项目
- Centos最小安装