bash编程之“字符串”:
双目:
>:大于
<:小于
==:等于
<>或者!=:不等
=~:左侧是字符串,右侧是一个模式,判断左侧的字符串能否被右侧的模式所匹配,通常只在[[]]中使用,
模式中可以使用行首、行尾锚定符,但模式不要加引号。
单目:
-n $stringVar :字符串是否不空,不空为真,空为假
-z $stringVar :字符串是否空,空为真,不空为假
例如:stringA="hello"
stringB="world"
[ "stringA"=="stringB" ]
echo $?,结果为1,假
stringB="hello"
[ "stringA"=="stringB" ]
echo $?,结果为0,真
[ -z "$stringA" ]
echo $?,结果为1,假
unset stringA
[ -z "$stringA" ]
echo $?,结果为0,真
[[ "$stringA"=~ lo ]]
echo $?,结果为0,真
[[ "$stringA"=~ ol ]]
echo $?,结果为1,假
例如:判断系统所有用户是否是拥有可登录shell
#!/bin/bash
for userName in `cut -d: -f1 /etc/passwd`; do
if [[ `grep "^$userName\>" /etc/passwd|cut -d :-f7` =~ sh$]];then
echo "login user:$userName"
else
echo "nologin user:$userName"
fi
done
本文转自lzf0530377451CTO博客,原文链接: http://blog.51cto.com/8757576/1555451,如需转载请自行联系原作者