Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103654864
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-18 23:40:13

作者:wayy2008  出处:Unix爱好者家园unix-cd.com   
clear;echo "\n请输入15位身份证号:\c"
read zj0
if [ ! "$zj0" ]; then exit; fi
ws=`expr length $zj0`
if [ $ws != 15 ];  then echo "\n输入身份证位数错误!!\c";read jkl;exit;fi
zj1=`echo $zj0|cut -c1-6`
zj2=`echo $zj0|cut -c7-`
sfz=$zj1"19"$zj2"0"
i=1; rm -f sfz.txt
while [ $i -lt 19 ]
 do
ai=`echo $sfz|cut -c$i-$i`
wi=`echo "7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1"|awk -v I=$i '{print $I}'`
awi=`echo $ai*$wi|bc`
echo "$awi">>sfz.txt
i=`expr $i + 1`
done
sbh=`awk '{s=s+$1}END{print s%11}' sfz.txt`
case $sbh in
 0) mw=1;;
 1) mw=0;;
 2) mw=X;;
 3) mw=9;;
 4) mw=8;;
 5) mw=7;;
 6) mw=6;;
 7) mw=5;;
 8) mw=4;;
 9) mw=3;;
10) mw=2;;
esac
echo "15位证件号:[$zj0]
18位证件号:[$zj1"19"$zj2$mw]"
阅读(661) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~