shell中字符串基本用法

前言

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

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

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

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