红联Linux门户
Linux帮助

怎么用shell判断一个字符串只由字母组成?

发布时间:2017-05-07 09:33:31来源:linux网站作者:iamdebugman
最近因工作需要,需要用shell 判断一个字符串是否只由字母组成同,做为抛砖引玉,分享出来,供大参考。
 
方法一、使用grep正则表达式
1.判断一个字符串是否只有字母组成,可以借助于grep命令,结合正则表达式来进行判断,字符有[A-Z]这26个字符组成,只要发现不属于这26个字符的字符,即表示不是纯字母的字符串。编写如下代码:
while ((1));do
read -p "input string:" var;
if [[ $var == q || $var == Q ]];then
exit;
fi
echo "$var" | grep [^a-z] >/dev/null && echo "$var: not character" || echo "$var: character"
done
怎么用shell判断一个字符串只由字母组成?
2.如上图所示的运行结果,GOOD做为输入,就判断错了,原因是没有考虑大写字母的问题。所以修改代码如下:
while ((1));do
read -p "input string:" var;
if [[ $var == q || $var == Q ]];then
exit;
fi
echo "$var" | grep [^a-z\|A-Z] >/dev/null && echo "$var: not character" || echo "$var: character"
done
怎么用shell判断一个字符串只由字母组成?
 
方法二、直接使用bash条件运算
除了使用grep等正则表达式命令外,也可以直接使用bash的条件判断,在bash shell的[[]]运算中支持使用正则表达式。编写代码如下:
while ((1));do
read -p "input string:" var;
if [[ $var == q || $var == Q ]];then
exit;
fi    if [[ $var =~ ^[a-z\|A-Z]+$ ]];then
echo "$var: character"
else
echo "$var: not character"
fi
done
怎么用shell判断一个字符串只由字母组成?
 
本文永久更新地址:http://www.linuxdiyf.com/linux/30582.html