Linux Shell字符串运算符

在 Shell 编程中,字符串处理是非常常见的操作之一,为此 Shell 引入了一些字符串运算符来方便对字符串进行操作。

下面是常用的字符串运算符以及其含义:

运算符描述举例

  • = 检测两个字符串是否相等,相等返回 true [ $str1 = $str2 ]
  • != 检测两个字符串是否不相等,不相等返回 true [ $str1 != $str2 ]
  • -z 检测字符串长度是否为0,为0返回 true [ -z $str ]
  • -n 检测字符串长度是否不为0,不为0返回 true [ -n $str ]
  • str 检测字符串是否不为空,不为空返回 true [ $str ]
  • [ ] 检测字符串是否不为空,不为空返回 true [ $str ]
  • * 匹配任意长度的字符串 “abc” = a*
  • ? 匹配任意单个字符的字符串 “abc” = a?c


例如,假设有一个变量 str=”hello world”,那么:

检测 $str 是否为空:[ $str ] 或者 [ -n $str ] 都为 true
检测 $str 是否不为空:[ $str ] 或者 [ -n $str ] 都为 true
检测 $str 的长度是否为 0:[ -z $str ] 为 false
检测 $str 是否等于 “hello world”:[ $str = “hello world” ] 为 true
检测 $str 是否等于 “hello”:[ $str = “hello” ] 为 false
检测 $str 是否不等于 “hello”:[ $str != “hello” ] 为 true
检测 $str 是否以 “h” 开头:[ $str = h* ] 为 true
检测 $str 是否以 “d” 结尾:[ $str = *d ] 为 true
检测 $str 是否包含 “ll”:[ $str = *ll* ] 为 true