免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2981 | 回复: 2
打印 上一主题 下一主题

请教 自定义函数中的if语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-30 22:53 |只看该作者 |倒序浏览
初学shell自己写了一个小程序,对于if语句的调用还很陌生
#!/bin/ksh

MFILE=id.cfg
string=$2
help()
{
   echo "usage0 -f filename"
   echo "usage0 -n 16512345678 "
   echo "usage0 -h "
}

Getid_file()
{
Filename=$string
if [ ! -f $Filename ]; then
echo "Can not find the $Filename"
exit 0
fi
Ftp_file
awk -F "|" 'NR==FNR{a[substr($1,1,7)]=$3}NR!=FNR{if(substr($1,1,7) in a){print $1,a[substr($1,1,7)]} else {print $1" N/A"}}' $MFILE $Filename
}

Getid_number()
{
str=$string
if [ `echo ${#str}` -gt 11 ]; then
echo "The number is wrong"
exit 0
fi
Ftp_file
n=`echo $str|cut -c 1-7`
b=`grep "^$n" $MFILE|awk -F"|" '{print $3}'`
在此出要添加一条if的判断语句判断$b是否为空,为空则输出 $str N/A并退出,不为空则继续echo "$str $b"
}

Ftp_file()
{
ftp -inv 10.10.10.10 << END  1>/dev/null
quote USER root
quote PASS root
asc
cd /opt/
get id.cfg
by
END
}


if [ $# -ne 2 ]; then
   help
   exit 0
fi

if [ "x$1" = "x-h" ]||[ "x$1" = "x" ]; then
    help
    exit 0
fi

if [ "x$1" != "x-f" -a "x$1" != "x-n" ];then
    help
    exit 0
fi

if [ "x$1" = "x-f" ];then
    Getid_file
    exit 1
fi

if [ "x$1" =  "x-n" ];then
    Getid_number
    exit 1
fi

exit 0


本想用if [ -z "$b"] 但程序报错。
id.cfg 文件格式:
16512340000|16512349999|U55|

另请教下 自定义含数中使用if的条件和直接在shell下执行的if(如上面程序中的其他if)有和不同。

多谢

论坛徽章:
0
2 [报告]
发表于 2010-10-01 09:50 |只看该作者
if [ -z "$b"]  --> if [  -z "$b"  ]


注意空格。

论坛徽章:
0
3 [报告]
发表于 2010-10-01 10:02 |只看该作者
多谢了,看来偶基础还很差。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP