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"

最新文章

  1. Ajax Post 与 Get 实例
  2. 时间复杂度&空间复杂度
  3. Linux启动流程详解
  4. Notepad++ 几款实用插件简介,让你的 Notepad++ 如虎添翼
  5. light工具
  6. [转载]MongoDB学习(三):MongoDB Shell的使用
  7. js常见算法
  8. window.parent.document jquery
  9. CDN网络架构
  10. [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点
  11. BackgroundWorker 组件 -- 进度条
  12. 关于Segmentation fault (core dumped)
  13. js的 new Date()日期格式化显示以及js获取时间戳
  14. 团队项目开发特点以及NABCD分析总结
  15. byte[],bitmap,drawable之间的相互转换
  16. 变形CSS3
  17. python进程之间修改数据[Manager]与进程池[Pool]
  18. PHP中str_replace和substr_replace有什么区别?
  19. 从invalidAuthenticationToken❌想到需要忽略:verify_authenticity_token。
  20. Python流程控制-while循环-for循环

热门文章

  1. Clickhouse 时区转换
  2. Codeforces Round #509 (Div. 2) A. Heist 贪心
  3. 数学--数论-- HDU6298 Maximum Multiple 打表找规律
  4. SpringBoot返回JSON日期格式问题
  5. Java——Java实现生产者消费者
  6. 软件工程复习 WHUT
  7. ASP.NET Core on K8S学习之旅(12)Ingress
  8. 微信小程序云开发|Error: ResourceNotFound.FunctionName, FunctionName 指定的资源不存在。 (41cd9de8-ff9b-4b1e-a65e-81ae9
  9. 使用 PyCharm 添加 Django 项目
  10. Centos最小安装