我实在没看出来 ,请高手帮忙 脚本如下:
#! /usr/bin/ksh
# script:dateval.sh
IFS="/"
n="[0-9][0-9]"
set -A month_arr 0 31 29 31 30 31 30 31 31 30 31 30 31
while echo "enter a date: " ; do
read value
case "$value" in
"") echo "no date entered" ; continue ;;
$n$n$n) set $value
let rem="$3 % 4"
if [ $2 -gt 12 -o $2 -eq 0 ] ; then
echo "illegal month" ; continue
else
case "$value" in
29/02/??) [ $rem -gt 0 ] &&
{ echo "20$3 is not a leap year" ; continue ; } ;;
*) [ $1 -gt ${month_arr[$2]} -o $1 -eq 0 ] &&
{ echo "illegal day " ; continiue ; } ;;
esac
fi;;
*) echo "invalid date" ; continue ;;
esac
echo "$1/$2/$3" is a valid date
done
可以运行 但是结果不正确:
stone@ubuntu:~$ chmod +x dateval.sh;./dateval.sh
enter a date:
11/11/11
invalid date
enter a date:
01/01/01
invalid date
enter a date:
no date entered
enter a date:
脚本那里出错了?
-
- 帖子: 14
- 注册时间: 2009-09-30 21:08
-
- 帖子: 14
- 注册时间: 2009-09-30 21:08
Re: 脚本那里出错了?
脚本的功能 :
验证用户输入的是否是有效的日期,并考虑了闰年的因素(没有包括被400整除的年份)
验证用户输入的是否是有效的日期,并考虑了闰年的因素(没有包括被400整除的年份)
- xzap
- 帖子: 256
- 注册时间: 2006-08-24 21:25
Re: 脚本那里出错了?
糟了,这个脚本我完全看不懂阿,帮顶,等高手出现吧
- cnkilior
- 论坛版主
- 帖子: 4984
- 注册时间: 2007-08-05 17:40
-
- 帖子: 2841
- 注册时间: 2006-09-11 22:47
Re: 脚本那里出错了?
你确认你用的是 ubuntu ?
如果用 ubntu 的话为什么要用 ksh 脚本呢?
如果用 ubntu 的话为什么要用 ksh 脚本呢?