前言

今天在写脚本时,发现前阶段使用过的一些用法还是需要去百度查找,并且找到的答案还需要自己去筛选,耽误写脚本时间,这一篇对字符串之间的比较和逻辑判断都非常详细,借鉴他人之作,资源共享。

本片主要说明一些字符串比较中的注意事项

主要包括了字符串 相等、不等、长度、空字符串 以及逻辑与、逻辑或的内容,具体内容见下面的脚本:

  1. #!/bin/bash
  2. # test string order
  3. a="ss"
  4. b="abc"
  5. c="ss"
  6. echo "----------------------------------------------------------------------------"
  7. echo " test for string compare with \"!=\",\"=\",\"-z\",\"-n\",is a null str ;test string is \"$a\"  and \"$b\""
  8. echo "----------------------------------------------------------------------------"
  9. echo "*************----------*********************"
  10. echo "-----------"
  11. echo "test \"=\"  等号运算,比较两个字符串相等"
  12. echo "-----------"
  13. echo "if [ \$a = \$b ]; then  用=来比较两个字符串是否相等, 注意不是==符号 ,注意语句中的空格符号一定要预留好,下面的一些语句中的空格格式和本句类似"
  14. if [ $a = $b ]; then
  15. echo "$a == $b : a = b"
  16. else
  17. echo "-----------"
  18. echo "test \"!=\",不等号运算,比较两个字符串不相等"
  19. echo "-----------"
  20. if [ $a != $c ]; then
  21. echo "$a == $c :a !=c "
  22. else
  23. echo "$a == $c : a ==c "
  24. fi
  25. fi
  26. echo "-----------"
  27. echo "test \"-z\",字符串长度为0运算,为0返回真"
  28. echo "-----------"
  29. if [ -z $a ]
  30. then
  31. echo "-z $a : 字符串长度为 0"
  32. else
  33. echo "-z $a : 字符串长度不为 0"
  34. fi
  35. echo "-----------"
  36. echo "test \"-n\",字符串长度不为0运算,不为0返回真"
  37. echo "-----------"
  38. if [ -n $a ]
  39. then
  40. echo "-n $a : 字符串长度不为 0"
  41. else
  42. echo "-n $a : 字符串长度为 0"
  43. fi
  44. echo "-----------"
  45. echo "test is a null str"
  46. echo "-----------"
  47. if [ $a ]
  48. then
  49. echo "$a : 字符串不为空"
  50. else
  51. echo "$a : 字符串为空"
  52. fi
  53. a="aaa"
  54. b="bbb"
  55. echo "----------------------------------------------------------------------------"
  56. echo " test string  with \"&&\",\"||\";test string is \"$a\"  and \"$b\""
  57. echo "----------------------------------------------------------------------------"
  58. echo "-----------"
  59. echo "test \"&&\",逻辑与运算"
  60. echo "-----------"
  61. if [[ $a = $a && $b = $b ]]
  62. then
  63. echo "[[ \$a = \$a && \$b = \$b ]]返回 true"
  64. else
  65. echo "[[ \$a = \$a && \$b = \$b ]]返回 false"
  66. fi
  67. echo "-----------"
  68. echo "test \"||\",逻辑或运算"
  69. echo "-----------"
  70. if [[ $a = $b || $b = $b ]]
  71. then
  72. echo "[[ \$a = \$b || \$b = \$b ]]返回 true"
  73. else
  74. echo "[[ \$a = \$b || \$b = \$b ]]返回 false"
  75. fi
  76. echo "*************----------*********************"

shell中字符串基本用法的更多相关文章

  1. (转)Shell中read的用法详解

    Shell中read的用法详解 原文:http://blog.csdn.net/jerry_1126/article/details/77406500 read的常用用法如下: read -[pstn ...

  2. shell中字符串操作【转】

    转自:http://blog.chinaunix.net/uid-29091195-id-3974751.html 我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,当然shell编程也不例 ...

  3. Shell中字符串、数值的比较

    原文:http://apps.hi.baidu.com/share/detail/31263915 在shell中字符串与数值的比较方法是不同的,要注意区分 整数比较:    -eq       等于 ...

  4. shell中的EOF用法

    重定位运算符 >> 是追加内容> 是覆盖原有内容 1.EOF Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止 ...

  5. shell 中的expect 用法

    expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作 测试机上的expect目录一般在/usr/bin/expect路径 下面是从网上查询的用法总结: 1. expect中的判断语句: ...

  6. 转shell中的awk用法详解

        awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 调用awk:   第一种,命令行方式 ...

  7. shell中case的用法学习笔记

    这篇文章主要为大家介绍shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码. 本文转自:http://www.jbxue.com/article ...

  8. shell中set的用法(转)

    使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性. 在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性, 不带任何参数的set命令将显 ...

  9. 在shell 中字符串,文件,数字的比较

    hadoop fs -test -e /path/exist ] ;then echo 'exist' else echo 'Error! path is not exist' fi 在shell中如 ...

随机推荐

  1. Node.js实现TCP和HTTP并作简单的比较

    TCP和Node 传输控制协议是一个面向连接的协议,换句话说,它是一个传输层的协议,它主要的职务呢,就是确保信息传输的正确性. 我们使用的很多如HTTP协议都是基于TCP的,为什么呢?因为我们不希望传 ...

  2. onbeforeunload与onunload事件

    Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过 window.onunload来指定或者在<body>里指定.区别在于o ...

  3. jsonp——使用公共接口获取数据

    demo: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...

  4. 09.Spring Bean 注册 - BeanDefinitionRegistry

    基本概念 BeanDefinitionRegistry ,该类的作用主要是向注册表中注册 BeanDefinition 实例,完成 注册的过程. 它的接口定义如下: public interface ...

  5. Android中常用的几种加密

    1.数字摘要 是指通过算法将长数据变为短数据,通常用来标识数据的唯一性,是否被修改,常用的加密算法有md5和sha1两种,如Android的App签名也是用的这两种算法. md5具有不可逆性,也可用来 ...

  6. Java面向对象_多态性、instanceof关键字

    一.多态 分类:方法的重载与重写:对象的多态性 对象的多态性:向上转型:将子类实例转为父类实例   格式:父类 父类对象=子类实例;是自动转换 向下转型:将父类实例转为子类实例   格式:子类 子类对 ...

  7. Java面向对象_静态代理模式

    概念:为其它对象提供一种代理以控制对这个对象的访问.代理模式说白了就是"真实对象"的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途. public clas ...

  8. C#面试常见题

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答: private : 私有成员, 在类的内部才可以访问. protected : 保护成员 ...

  9. Object与封装、继承和多态性

    Object与封装.继承和多态性 在面向对象编程思想中,无论是C++,Java还是C#等,封装.继承与多态性都有着无与伦比的地位,深入理解并掌握它们是必不可少的.而我将使用C#来浅谈继承与多态性. 1 ...

  10. CentOS6.x升级MySQL 5.1到5.6

    有一些虚拟机.云主机提供商仍然使用的是老版本的安装套件.预装的应用软件版本很低.有些IDC使用的云服务器,其中MySQL预装版本为老版本5.1.x.而较新的MySQL 5.6版本在性能.功能.安全性等 ...