[求助] 大家来帮我看看代码啊!!!!
检查输入是否由字符构成#characters
#$1=string
{
_LETTERS_ONLY=$1
_LETTERS_ONLY=`echo $1|awk '{if($0~/[^a-zA-Z]/) print "1"}'`
if [ "$_LETTERS_ONLY" != "" ]
then
return 1#非字符
else
return 0
fi
}
为什么单词串比如"abc "这样的能通过而"abc def" 不能通过? 在我这里可以啊,我把return改成exit写在一个脚本里,试了试,可以。你用 sh -x 脚本名试试,看输出是否符合你要运行脚本的意思。我也是刚学shell编程,还不熟。 在我这里可以啊,我把return改成exit写在一个脚本里,试了试,可以。你用 sh -x 脚本名试试,看输出是否符合你要运行脚本的意思。我也是刚学shell编程,还不熟。
呵呵 找到原因了 谢谢提醒 :D:D 是什么原因啊~~
我搞不出~~ 你的"abc def"中间是个空格当然不能通过了。
这种字符替换的功能,bash有内建命令,不需要动用awk,sed这样的外部程序。
${var/x/y} 将var中的第一个模式x替换为y
${var//x/y} 将var中的所有模式x替换为y
检查函数就可以写成
str="some string"
if [ "${str//[a-zA-Z]/}" == "" ]; then
echo "OK"
else
echo "Fail"
fi
页:
[1]