日期:2014-05-16  浏览次数:20731 次

一个shell对参数进行验证的问题.
sh   prog.sh   p1   p2
其中p1,p2为两个参数,验证方式如下:

如果   p1长度=4   且   为数字   则
    通过
否则
    提示  
    退出


如果   p2为日期   且不大于今天   则
    通过
否则
    提示
    退出

该怎么写?   谢谢.

------解决方案--------------------
#!/bin/bash

#是否两个参数
if [ $# -lt 2 ];then
echo "Usage: $0 arg1 arg2 "
exit 1
fi

#测试p1是否为数字
expr $1 + 0 > /dev/null 2> &1

if [ "$? " != "0 " ] || [ $1 -lt 1000 ] || [ $1 -ge 10000 ];then
echo "p1 is unvalid "
exit 1
fi

exit 0

只写了p1部分~~~有空再写...
------解决方案--------------------
对日期格式有什么要求?

2007-12-31
2007-31-12
Dec. 31,2007
2007/12/31
31/12/2007
还是2007年12月31日