前言

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

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

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

  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. 再谈布局,栅栏式自适应布局的学习和实现(calc自适应布局)

    布局真的很重要.一个不好的布局后期会有很多很多的bug,就像是建房子的地基一样. 首先,再一次地圣杯布局的学习,来源于该教程: http://www.jianshu.com/p/f9bcddb0e8b ...

  2. Practice encryptedblobstore

    C++ BlobStore 使用范例(C++伪代码) 一个可能的接口设计示例(C++) Java BlobStore 使用范例(Java伪代码) 一个可能的接口设计示例(Java) 一个基于Key/V ...

  3. SharePoint 2010开发方面的课堂中整理有关问题

    SharePoint 2010开发方面的课堂中整理有关问题 这是我这几天在做一个SharePoint开发的课程的时候,大家提出的一些问题,及我的解答,分享给更多的朋友参考一下 这个文档,也可以在这里下 ...

  4. asp.net5开发中DNX SDK版本的影响

    某次asp.net5开发中遇到了一个很奇怪的问题,引用部分的nuget包没有显示任何错误,如下图: 但是编译时出现了几百个错误: 错误基本都是形如“CS0246 The type or namespa ...

  5. Crash日志分析

    从Crash文件出发解决bug的一般步骤,分三步: a, 获取设备上的崩溃日志. b, 分析崩溃日志,找到报错位置(定位到函数和代码行数). c, 打开代码,改bug. 1, 获取设备日志 1. 在可 ...

  6. 电脑没有声音,显示“未插入耳机或扬声器”,检测不到Realtek高清晰音频管理器

    2018-7-16,电脑彻夜未关,早上发现已经死机了.关机重启之后,就发现没有声音了,提示“未插入耳机或扬声器”,并且检测不到Realtek高清晰音频管理器,只能检查到显卡音频输出.首先,音箱在其他电 ...

  7. Ajax 使用 FormData做为data的参数时 出现Illegal invocation

    今天在用ajax向后台传递数据时出现此错误,在ajax的参数中加上 contentType: false, processData: false, 这两句即可.

  8. node模拟后台返回json书写格式报错--Unexpected token ' in JSON at position 1

    最近在学习Node的知识,就尝试写了一个注册登陆的简单功能,但是自己在模拟后台返回值的时候,总是报错Unexpected token ' in JSON at position 1,查找原因之后,是因 ...

  9. Diagnostics->Examine功能不能使用

    在获取字段来源时: 执行Help->Diagnostics->Examine 系统弹出

  10. JAVA时间加工类

    /** * 当天凌晨 */ public static Calendar startOfDay(Calendar c) { if (c == null) { return c; } c.set(Cal ...