Bash 字符串运算符
同其他编程语言一样,在 Bash 中,字符串也是一种数据类型。只要以" "
引起来,不论是数字还是字符,都会被 Bash 视为字符串。如"Welcome to W3Cschool"
。
字符串运算符
1.=
等于运算符,等于时返回true
。
语法示例:
Str1 = Str2
应用示例:
#!/bin/bash
Str1="W3Cschool.cn"
Str2="W3C"
if [ $Str1 = $Str2 ];
then
echo "True"
else
echo "False"
fi
执行后得到以下结果:
False
2.!=
不等于运算符,不等于时返回true
。
语法示例:
Str1 != Str2
应用示例:
#!/bin/bash
Str1="W3Cschool.cn"
Str2="W3C"
if [[ $Str1 != $Str2 ]];
then
echo "True"
else
echo "False"
fi
执行后得到以下结果:
True
3.检查字符串长度是否为零。
-n
,不为零时返回true
。
语法示例:
-n Str
应用示例:
#!/bin/sh
Str="Welcome to W3Cschool"
if [ -n $Str ];
then
echo "True"
else
echo "False"
fi
执行后返回以下结果:
True
4.检查字符串长度是否为空。
[-z string ]
:如果string
不为空(长度大于0),则判断为真。
应用示例:
#!/bin/sh
ANSWER=maybe
if [ -z "$ANSWER" ]; then
echo "There is no answer." >&2
exit 1
fi
if [ "$ANSWER" = "yes" ]; then
echo "The answer is YES."
elif [ "$ANSWER" = "no" ]; then
echo "The answer is NO."
elif [ "$ANSWER" = "maybe" ]; then
echo "The answer is MAYBE."
else
echo "The answer is UNKNOWN."
fi
执行后返回以下结果:
maybe
上面代码中,首先确定$ANSWER
字符串是否为空。如果为空,就终止脚本,并把退出状态设为1
。注意,这里的echo
命令把错误信息There is no answer.
重定向到标准错误,这是处理错误信息的常用方法。如果$ANSWER
字符串不为空,就判断它的值是否等于yes
、no
或者maybe
。