/dev/null 2>1 || { echo "輸入非法!!!";exit } # 定。SCO下轉(zhuǎn)換大寫金額的SHELL腳本。" />

日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

SCO下轉(zhuǎn)換大寫金額的SHELL腳本

【SCO下轉(zhuǎn)換大寫金額的SHELL腳本】
#!/bin/ksh
# Program Name : Num2Chn.sh
# Programmer : 呂永輝(仙桃市信用聯(lián)社)
# 首先判斷輸入的是否為數(shù)字
printf "%.2f" $1 >/dev/null 2>&1 3>&1 || {
echo "輸入非法!!!";exit
}
# 定義數(shù)字?jǐn)?shù)組
Num[0]="零" Num[1]="壹" Num[2]="貳" Num[3]="叁" Num[4]="肆" Num[5]="伍"
Num[6]="陸" Num[7]="柒" Num[8]="捌" Num[9]="玖"
# 定義金額單位數(shù)組
Unit[1]="分" Unit[2]="角" Unit[3]="元" Unit[4]="拾" Unit[5]="佰" Unit[6]="仟"
Unit[7]="萬" Unit[11]="億"
# 處理負(fù)數(shù)的情況(紅字)
[ `echo $1 | grep "-"` ] && {
NumStr=`echo $1 | sed "s/^.//"`
RedFlag="(紅)"
} || {
NumStr=$1
RedFlag=""
}
# 初始化輸入數(shù)字?jǐn)?shù)組
i=1
for TmpC in `printf "%.2f" $NumStr | awk -F "." "{print $1$2}" | sed "s/./& /g"`
do
Nums[$i]=$TmpC
i=`expr $i1`
done
j=${#Nums[@]} # 為循環(huán)計數(shù)變量附初值為輸入數(shù)字的長度
k=1 # 為循環(huán)定位變量附初值(用于確定金額單位)
ChnNum="" # 初始化大寫金額字符串
while
[ $j -eq 0 ] && break
[ $k -gt 11 ] && {
ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 8 `]}$ChnNum
j=`expr $j - 1`
k=`expr $k1`
continue
}
[ $k -gt 7 -a $k -lt 11 ] && {
ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 4 `]}$ChnNum
j=`expr $j - 1`
k=`expr $k1`
continue
}
ChnNum=${Num[${Nums[$j]}]}${Unit[$k]}$ChnNum
do
j=`expr $j - 1`
k=`expr $k1`
done
ChnNum=`echo $RedFlag$ChnNum | sed "s/零分/整/" | sed "s/零角/零/g"
| sed "s/零拾/零/g" | sed "s/零佰/零/g" | sed "s/零仟/零/g"
| sed "s/零整/整/" | sed "s/零零零零萬/零/"`
# 下面的循環(huán)用于去掉字符串中連續(xù)的零
while
[ `echo $ChnNum | grep "零零"` ] || {
ChnNum=`echo $ChnNum | sed "s/零元/元/"| sed "s/零萬/萬/"
| sed "s/零億/億/" | sed "s/^元//" | sed "s/^零//" | sed "s/^整$/零元&/`
break
}
do
ChnNum=`echo $ChnNum | sed "s/零零/零/g"`
done
echo $ChnNum
(調(diào)試環(huán)境:SCO OpenServer 5.0.5 、ksh )

    推薦閱讀