Shell笔记:字符串基础使用
对于字符串变量的使用,需要加上 $
进行引用,特别是在 [[ ]]
中作为条件判断时没有使用 $
的话,无法进行正确的判断。
1 判断两个字符串是否相同
在 [[ ]]
使用 =
、 ==
、 !=
判断两个字符串是否相等,如果不确定变量的数据类型,但是想要将其转换为字符串再进行比较,可以在变量外边包裹一个双引号再进行判断。
a="abc"
b="bcd"
c="abc"
# 使用=判断字符串是否相等
if [[ ${a} = ${c} ]]; then
echo "YES-a"
fi
# 使用==判断字符串是否相等
if [[ ${a} == ${c} ]]; then
echo "YES-c"
fi
# 使用!=判断字符串是否不等
if [[ ${a} != ${b} ]]; then
echo "YES-b"
fi
d=333
e="333"
# 可以使用双引号将变量包裹起来,将其转换为字符串进行比较判断
if [[ "${d}" == "${e}" ]]; then
echo "YES-d"
fi
2 判断一个字符串是否为空(或长度为0)
可以直接对引用的字符串进行判断 if [[ ${var} ]]
,为空就是false,不为空就是true,当然,也可以使用 -z
和 -n
显式的判断字符串是否为空。
a="abc"
b=""
# 使用-z判断字符串是否为空,为空返回true
if [[ -z ${b} ]]; then
echo "YES-b"
fi
# 使用-n判断字符串是否不为空,不为空返回true
if [[ -n ${a} ]]; then
echo "YES-a"
fi
# 直接判断引用的字符串是否不为空,不为空返回true
if [[ ${a} ]]; then
echo "YES-abc"
fi
3 字符串拼接
拼接字符串最简单的方式就是在外面用一个双引号包裹,里面填充变量值即可。
a="aaa"
b="bbb"
c="ccc"
echo "${a}111${b}222${c}"