QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1039|回复: 4

[求助] 大家来帮我看看代码啊!!!!

[复制链接]
发表于 2006-2-24 16:08:59 | 显示全部楼层 |阅读模式
检查输入是否由字符构成
[code:1]
#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
}
[/code:1]
为什么单词串比如"abc "这样的能通过而"abc def" 不能通过?
发表于 2006-2-24 18:04:04 | 显示全部楼层
在我这里可以啊,我把return改成exit写在一个脚本里,试了试,可以。你用 sh -x 脚本名  试试,看输出是否符合你要运行脚本的意思。我也是刚学shell编程,还不熟。
回复

使用道具 举报

 楼主| 发表于 2006-2-24 18:45:54 | 显示全部楼层
[quote:2d5c811060="lwf163"]在我这里可以啊,我把return改成exit写在一个脚本里,试了试,可以。你用 sh -x 脚本名  试试,看输出是否符合你要运行脚本的意思。我也是刚学shell编程,还不熟。[/quote]
呵呵 找到原因了 谢谢提醒 :D  :D
回复

使用道具 举报

发表于 2006-3-2 20:27:47 | 显示全部楼层
是什么原因啊~~
我搞不出~~
回复

使用道具 举报

发表于 2006-3-14 23:47:50 | 显示全部楼层
你的"abc def"中间是个空格当然不能通过了。

这种字符替换的功能,bash有内建命令,不需要动用awk,sed这样的外部程序。

    ${var/x/y} 将var中的第一个模式x替换为y
    ${var//x/y} 将var中的所有模式x替换为y
    [/list:u]

    检查函数就可以写成
    [code:1]
    str="some string"
    if [ "${str//[a-zA-Z]/}" == "" ]; then
      echo "OK"
    else
      echo "Fail"
    fi
    [/code:1]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-7-1 13:09 , Processed in 0.045576 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表