1. 字符串测试举例
     提示:下面的$file并未定义,而$file1 在上面测试中已定义。
  范例1:单条件字符串测试:

  1. [root@test-1 ~]# file1=/etc/services;file2=/etc/rc.local
  2. [root@test-1 ~]# echo $file1 $file2
  3. /etc/services /etc/rc.local
  4. [root@test-1 ~]# [ -n "$file" ] && echo 1 ||echo 0
  5. 0
  6. #若串长度不为0则真。因$file未定义长度为0,所以为假(0)
  7. [root@test-1 ~]# [ -z "$file" ] && echo 1 ||echo 0
  8. 1
  9. #若串长度为0则真。因$file未定义长度为0,所以为真(1)
  10. [root@test-1 ~]# [ -n "$file1" ] && echo 1 ||echo 0
  11. 1
  12. #若串长度不为0则真。因$file已定义变量长度不为0,所以为真(1)
  13. [root@test-1 ~]# [ -z "$file1" ] && echo 1 ||echo 0
  14. 0
  15. #若串长度为0则真。因$file已定义变量长度不为0,所以为假(0)
  16.  
  17. 提示:去掉双引号看看
  18. [root@test-1 ~]# [ -n $file ] && echo 1 ||echo 0
  19. 1
  20. [root@test-1 ~]# [ -z $file1 ] && echo 1 ||echo 0
  21. 0
  22. 提示:字符串比较一定要加双引号

 范例2(生产):系统脚本/etc/init.d/nfs字符串测试的应用:

  1. # Remote quota server
  2. [ -z "$RQUOTAD" ] && RQUOTAD=`type -path rpc.rquotad`
  3. [ -z "$MOUNTD_NFS_V2" ] && MOUNTD_NFS_V2=default
  4. [ -z "$MOUNTD_NFS_V3" ] && MOUNTD_NFS_V3=default
  5.  
  6. # Number of servers to be started by default
  7. [ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=8
  8. [ -n "$NLM_GRACE_PERIOD" ] && {
  9. /sbin/sysctl -w fs.nfs.nlm_grace_period=$NLM_GRACE_PERIOD >/dev/null 2>&1
  10. }

 范例3:多条件字符串测试:

  1. [root@test-1 ~]# file1=/etc/services;file2=/etc/rc.local
  2. [root@test-1 ~]# echo $file1 $file2
  3. /etc/services /etc/rc.local
  4. [root@test-1 ~]# [ -n "$file" ] && echo 1 ||echo 0
  5. 0
  6. #若串长度不为0则真。因$file未定义长度为0,所以为假(0)
  7. [root@test-1 ~]# [ -z "$file" ] && echo 1 ||echo 0
  8. 1
  9. #若串长度为0则真。因$file未定义长度为0,所以为真(1)
  10. [root@test-1 ~]# [ -z "$file1" ] && echo 1 ||echo 0
  11. 0
  12. [root@test-1 ~]# [ -z "$file1" -a -z "file2" ] && echo 1 ||echo 0
  13. 0
  14. [root@test-1 ~]# [[ -z "$file1" && -z "file2" ]] && echo 1 ||echo 0
  15. 0
  16. [root@test-1 ~]# [[ -z "$file1" || -n "file2" ]] && echo 1 ||echo 0
  17. 1
  18. [root@test-1 ~]# [ -z "$file1" -o -z "file2" ] && echo 1 ||echo 0
  19. 0
  20. [root@test-1 ~]# [ -n "$file1" -o -z "file2" ] && echo 1 ||echo 0
  21. 1
  22. [root@test-1 ~]# [ "$file1" == "file2" ] && echo 1 ||echo 0
  23. 0
  24. [root@test-1 ~]# [ "$file1" = "file2" ] && echo 1 ||echo 0
  25. 0
  26. [root@test-1 ~]# [ "$file1" !== "file2" ] && echo 1 ||echo 0
  27. -bash: [: !==: binary operator expected
  28. 0
  29. [root@test-1 ~]# [ "$file1" != "file2" ] && echo 1 ||echo 0
  30. 1
  31. [root@test-1 ~]# [ ! "$file1" == "file2" ] && echo 1 ||echo 0
  32. 1
  33. [root@test-1 ~]# [ ! "$file1" \> "file2" ] && echo 1 ||echo 0
  34. 1
  35. [root@test-1 ~]# [ ! "$file1" \< "file2" ] && echo 1 ||echo 0
  36. 0
  37. [root@test-1 ~]# [ ! "${#file1}" \< "${#file2}" ] && echo 1 ||echo 0
  38. 1

  

shell-字符串多操作符综合实践多案例的更多相关文章

  1. Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...

  2. linux shell 字符串操作(长度,查找,替换)详解

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  3. Shell 字符串比较

    转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...

  4. 【转】shell字符串截取

    shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...

  5. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)

    简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...

  6. Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)

    1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...

  7. Quartz应用实践入门案例二(基于java工程)

    在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任 ...

  8. Quartz应用实践入门案例一(基于Web环境)

    Quartz是一个完全由java编写的开源作业调度框架,正是因为这个框架整合了许多额外的功能,所以在使用上就显得相当容易.只是需要简单的配置一下就能轻松的使用任务调度了.在Quartz中,真正执行的j ...

  9. shell字符串操作详解

    shell字符串操作详解的相关资料. 1.shell变量声明的判断  表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...

随机推荐

  1. 数据库系统第一章【绪论】(B站视频)

    目录 数据库系统第一章[绪论](B站视频) 一.绪论 数据库的四大基本概念 数据 数据库 数据库管理系统 主要功能 数据库系统 数据管理 我的理解 数据系统的特点 数据结构化 数据系统的共享性 数据独 ...

  2. JAVA,.NET项目开发难上手?力软敏捷开发框架解君愁

        力软敏捷开发框架/快速开发平台是一款轻量化多语言可视化开发工具.秉持以“让开发变得简单”为宗旨,深耕软件平台, 拥有近10年的行业开发经验,经典的.NET软件产品已经服务超5000家客户,并得 ...

  3. JS中有趣的内置对象-JSON

    前言 在以前的web开发中,我们多数选择纯文本或XML作为我们的提交的数据格式,大多数是XML,少数纯文本.其实从AJAX(Asynchronous JavaScript and XML)的命名我们也 ...

  4. C005:计算多项式的值

    程序: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { float x; do{ printf("E ...

  5. rabbitmq集成和实战

    与 Spring 集成 pom 文件 使用 Maven,这里使用的 4.3.11,所以这里引入的是 rabbit 是 2.0.0,如果兼容性的话请自行去 Spring 的官网上去查 这里补充一下,sp ...

  6. 一文解开java中字符串编码的小秘密

    目录 简介 Unicode的发展史 Unicode详解 UTF-8 UTF-16 UTF-32 Null-terminated string 和变种UTF-8 简介 在本文中你将了解到Unicode和 ...

  7. 我是如何使用freemarker生成Word文件的?

    推荐:亲身体验,数次踩坑,遂撰写此文,以备各位不时之需. 背景 一天,产品经理递给我了一份word报告,我定睛一看 这个文档有大大小小的标题层级,还有排版好的段落.各种一目了然的饼图.走势图,当然还少 ...

  8. Skywalking Php注册不上问题排查

    Skywalking是一款分布式追踪应用,具体介绍可以参考 skywalking. 最近公司的一个Php应用在Skywalking后台查不到数据了: 登录到某台服务器上发现注册不上,启动时就报错了: ...

  9. ScheduledExecutorService定时任务学习

    scheduleAtFixedRate :每隔Xs执行任务 scheduleWithFixedDelay :上轮任务结束后的Xs后执行下次任务 如下是测试代码,就是at和with方法不同 public ...

  10. 【5】JMicro免费在线消息服务

    JMicro是一个用Java语言实现的开源微服务全家桶, 源码地址:https://github.com/mynewworldyyl/jmicro, Demo地址:http://jmicro.cn/. ...