shell中字符串基本用法
前言
今天在写脚本时,发现前阶段使用过的一些用法还是需要去百度查找,并且找到的答案还需要自己去筛选,耽误写脚本时间,这一篇对字符串之间的比较和逻辑判断都非常详细,借鉴他人之作,资源共享。
本片主要说明一些字符串比较中的注意事项
主要包括了字符串 相等、不等、长度、空字符串 以及逻辑与、逻辑或的内容,具体内容见下面的脚本:
- #!/bin/bash
- # test string order
- a="ss"
- b="abc"
- c="ss"
- echo "----------------------------------------------------------------------------"
- echo " test for string compare with \"!=\",\"=\",\"-z\",\"-n\",is a null str ;test string is \"$a\" and \"$b\""
- echo "----------------------------------------------------------------------------"
- echo "*************----------*********************"
- echo "-----------"
- echo "test \"=\" 等号运算,比较两个字符串相等"
- echo "-----------"
- echo "if [ \$a = \$b ]; then 用=来比较两个字符串是否相等, 注意不是==符号 ,注意语句中的空格符号一定要预留好,下面的一些语句中的空格格式和本句类似"
- if [ $a = $b ]; then
- echo "$a == $b : a = b"
- else
- echo "-----------"
- echo "test \"!=\",不等号运算,比较两个字符串不相等"
- echo "-----------"
- if [ $a != $c ]; then
- echo "$a == $c :a !=c "
- else
- echo "$a == $c : a ==c "
- fi
- fi
- echo "-----------"
- echo "test \"-z\",字符串长度为0运算,为0返回真"
- echo "-----------"
- if [ -z $a ]
- then
- echo "-z $a : 字符串长度为 0"
- else
- echo "-z $a : 字符串长度不为 0"
- fi
- echo "-----------"
- echo "test \"-n\",字符串长度不为0运算,不为0返回真"
- echo "-----------"
- if [ -n $a ]
- then
- echo "-n $a : 字符串长度不为 0"
- else
- echo "-n $a : 字符串长度为 0"
- fi
- echo "-----------"
- echo "test is a null str"
- echo "-----------"
- if [ $a ]
- then
- echo "$a : 字符串不为空"
- else
- echo "$a : 字符串为空"
- fi
- a="aaa"
- b="bbb"
- echo "----------------------------------------------------------------------------"
- echo " test string with \"&&\",\"||\";test string is \"$a\" and \"$b\""
- echo "----------------------------------------------------------------------------"
- echo "-----------"
- echo "test \"&&\",逻辑与运算"
- echo "-----------"
- if [[ $a = $a && $b = $b ]]
- then
- echo "[[ \$a = \$a && \$b = \$b ]]返回 true"
- else
- echo "[[ \$a = \$a && \$b = \$b ]]返回 false"
- fi
- echo "-----------"
- echo "test \"||\",逻辑或运算"
- echo "-----------"
- if [[ $a = $b || $b = $b ]]
- then
- echo "[[ \$a = \$b || \$b = \$b ]]返回 true"
- else
- echo "[[ \$a = \$b || \$b = \$b ]]返回 false"
- fi
- echo "*************----------*********************"