前言

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

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

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

  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. maven项目跳转页面报空指针错误 Servlet.service() for servlet 异常

    Servlet.service() for servlet jsp threw exceptionjava.lang.NullPointerExceptionat org.jaronsource.ms ...

  2. 关于JSON可能出现的错误,待更/todo

    今天写到webAppService.js的时候,用fs模块调用json,发现单引号的json被警告了. json就是一段有格式的字符串,如果数据的封装与解析都是我们自己做的时候,单引号和双引号是没啥关 ...

  3. centos7.3下配置本地yum仓库

    部署openstack时,网络yum源安装慢,而且经常中的提示找不到mirrors,所以配置一个本地的安装源很有必要,来解决这个揪心的问题. 安装:yum install yum-utils crea ...

  4. Luogu P2455 [SDOI2006]线性方程组 真•高斯消元板子

    果然如Miracle学长所说...调了一天...qwq..还是过不了线下的Hack upd after 40min:刚刚过了 就是多了一个判无解的操作... 当系数都为0,且常数项不为0时,即为无解. ...

  5. (1009) HDU 6446 Tree and Permutation(规律+树上各个点的距离和)

    题意: 给一棵N个点的树,对应于一个长为N的全排列,对于排列的每个相邻数字a和b,他们的贡献是对应树上顶点a和b的路径长,求所有排列的贡献和. 分析: 经过简单的分析可以得知,全部的贡献其实相当与(这 ...

  6. docker 资源限制

    docker run 时使用-m指定可以使用的内存大小, 记录在cgroup配置文件中 cat /sys/fs/cgroup/memory/memory.limit_in_bytes jvm内存会超过 ...

  7. Jmeter4.0----HTTP Cookie管理器_抓取cookie中的参数(13)

    1.说明 请求结束后,要通过登录用户的JSESSIONID判断用户是否登录成功 2.步骤 第一步:添加 HTTP Cookie管理器 录制前,创建”线程组”,线程组=>配置元件=>HTTP ...

  8. C++之struct

    C++的struct对C做和很多补充,里面可以放函数(构造函数和虚函数),也可以同struct和class的继承,在C++中也完全可以替代class.他们之间的主要区别: 1 calss默认是私有继承 ...

  9. URAL 2080 Wallet

    找规律发现只要找到两个相同数字之间,有多少个不同的数字,即为答案. 可以用树状数组离线处理. 坑点是卡有很多张,没用完的情况,后面的卡直接放在哪里, 就是 10 5 1 2 3 4 5 这样 开始数据 ...

  10. OpenStack git cmd

    文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库. 基本的 Git 工作流程如下: 在工作目录中修改某些文件. 对修改后的文件进行快照,然后保存到暂存区域. 提交更新,将保存在暂存区 ...