Unix / Linux - Shell 字符串运算符示例
Bourne Shell 支持以下字符串运算符。
假设变量a 包含"abc",变量b 包含"efg",那么 −
运算符 | 说明 | 示例 |
---|---|---|
= | 检查两个操作数的值是否相等; 如果是,则条件变为真。 | [ $a = $b 为 not true。 |
!= | 检查两个操作数的值是否相等; 如果值不相等,则条件变为真。 | [ $a != $b ] 为 true。 |
-z | 检查给定的字符串操作数大小是否为零; 如果它的长度为零,则返回 true。 | [ -z $a 为 not true。 |
-n | 检查给定的字符串操作数大小是否非零; 如果它是非零长度,则返回 true。 | [ -n $a ] 为 not false。 |
str | 检查 str 是否为空字符串; 如果为空,则返回 false。 | [ $a ] 为 not false。 |
示例
这是一个使用所有字符串运算符的示例 −
#!/bin/sh a="abc" b="efg" if [ $a = $b ] then echo "$a = $b : a is equal to b" else echo "$a = $b: a is not equal to b" fi if [ $a != $b ] then echo "$a != $b : a is not equal to b" else echo "$a != $b: a is equal to b" fi if [ -z $a ] then echo "-z $a : string length is zero" else echo "-z $a : string length is not zero" fi if [ -n $a ] then echo "-n $a : string length is not zero" else echo "-n $a : string length is zero" fi if [ $a ] then echo "$a : string is not empty" else echo "$a : string is empty" fi
上面的脚本会产生下面的结果 −
abc = efg: a is not equal to b abc != efg : a is not equal to b -z abc : string length is not zero -n abc : string length is not zero abc : string is not empty
使用运算符需要注意以下几点 −
运算符和表达式之间必须有空格。 例如,2+2 是不正确的。 应该写成 2 + 2。
if...then...else...fi 语句是决策语句,已在下一章中解释。