- 热门文章:
- · cc的基本用法
- · 一个shell编写菜单
- · tar解压
- · 网卡的配置和相关检测
- · dd 命令的用法
- · 分享SCO UNIX安装经验
- · swap--交换区配置
- · 用sed实现文件反转
- · Unix下打包命令的使用
- · 创建带网络功能的SCO UNIX 5.05应急软盘组
- · 如何在SCO UNIX 5中直接运行DOS/WINDOWS程序
- · Unix中限制root远程登录的方法
SCO下转换大写金额的SHELL脚本
#!/bin/ksh
# Program Name : Num2Chn.sh
# Programmer : 吕永辉(仙桃市信用联社)
# 首先判断输入的是否为数字
printf "%.2f" $1 >/dev/null 2>&1 3>&1 || {
echo "输入非法!!!";exit
}
# 定义数字数组
Num[0]="零" Num[1]="壹" Num[2]="贰" Num[3]="叁" Num[4]="肆" Num[5]="伍"
Num[6]="陆" Num[7]="柒" Num[8]="捌" Num[9]="玖"
# 定义金额单位数组
Unit[1]="分" Unit[2]="角" Unit[3]="元" Unit[4]="拾" Unit[5]="佰" Unit[6]="仟"
Unit[7]="万" Unit[11]="亿"
# 处理负数的情况(红字)
[ `echo $1 | grep "-"` ] && {
NumStr=`echo $1 | sed @#s/^.//@#`
RedFlag="(红)"
} || {
NumStr=$1
RedFlag=""
}
# 初始化输入数字数组
i=1
for TmpC in `printf "%.2f" $NumStr | awk -F "." @#{print $1$2}@# | sed @#s/./& /g@#`
do
Nums[$i]=$TmpC
i=`expr $i + 1`
done
j=${#Nums[@]} # 为循环计数变量附初值为输入数字的长度
k=1 # 为循环定位变量附初值(用于确定金额单位)
ChnNum="" # 初始化大写金额字符串
while
[ $j -eq 0 ] && break
[ $k -gt 11 ] && {
ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 8 `]}$ChnNum
j=`expr $j - 1`
k=`expr $k + 1`
continue
}
[ $k -gt 7 -a $k -lt 11 ] && {
ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 4 `]}$ChnNum
j=`expr $j - 1`
k=`expr $k + 1`
continue
}
ChnNum=${Num[${Nums[$j]}]}${Unit[$k]}$ChnNum
do
j=`expr $j - 1`
k=`expr $k + 1`
done
ChnNum=`echo $RedFlag$ChnNum | sed @#s/零分/整/@# | sed @#s/零角/零/g@# \
| sed @#s/零拾/零/g@# | sed @#s/零佰/零/g@# | sed @#s/零仟/零/g@#\
| sed @#s/零整/整/@# | sed @#s/零零零零万/零/@#`
# 下面的循环用于去掉字符串中连续的零
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
(调试环境:SCO OpenServer 5.0.5 、ksh )
- · sco的管理工具
- · 轻松制作SCO UNIX系统备份
- · SCO Unix十大常见故障
- · 在sco 5.0.5中定时运行程序
- · 在SCO系统中配置非SCSI磁带设备
- · DAT磁带机安装(SCO UNIX 5.0.4)
- · 烧制2.88MB的应急引导盘
- · 创建一个包含vi的SCO5.05系统应急引导盘
- · 应急启动盘与安全管理
- · 创建带网络功能的SCO5.05应急软盘组
- · SCO root密码丢失的处理
- · 提升UNIX中文件系统使用效率
- · 在安装SCO OpenServer时如何设置硬盘驱动器
- · SCO 三种安装BTLD的方式
- · SCO中如何对用户帐户加锁及解锁
- · 与性能相关的几个核心参数(CPU,I/O,MEMORY)
- · SCO Unix 故障排除四例
- · 如何在SCO系统中配置一个非SCSI磁带设备
- · 如何注销sco openserver的空闲用户(只针对非图形的用户)
- · 出现 LOGIN:ERROR-Failed to initialize policy manager
- · FTP命令详解及使用技巧
- · 如何使用工具badtrk检查磁盘坏道?
- · 如何使用工具badtrk检查磁盘坏道?
- · UNIX系统下部分控制代码介绍及其应用
- · SCO OpenServer下的终端监控系统-Spy FileSystem
- · SCO UNIX 下设备驱动程序开发
- · unix口令文件介绍
- · Sco openserver unix下安装双网卡的一些建议
- · UnixWare 7 root口令遗失的解决方法
- · SCO OpenServer 5.0.5中DHCP如何配置 ?
- · SCO命令--df
- · SCO NFS详解
- · 性能相关的几个核心参数(CPU,I/O,MEMORY)
- · 进程管理的两个命令(PS,Sar)
- · SCO UNIX5 的动态核心表
- · SCO UNIX5的几个主要系统进程
- · SCO TCP/IP网络管理---ifconfig命令的语法
- · SCO TCP/IP网络管理---守护进程(daemon)
