代码语言:javascript复制
#!/bin/bash
mv()
{ # 发票名字乱码,批量改名字
dir="/datadisk/eisc/ftp/eisc/报销/20230529/高德打车电子发票"
filelist=(`ls $dir | grep -v mv.sh`)
for((i=0;i<${#filelist[*]};i ))
do
echo "文件: $dir/${filelist[$i]}
正在重新命名为: $dir/$i.pdf
"
sudo mv $dir/${filelist[$i]} $dir/$i.pdf
done
echo "列出所有文件: "; ls -alh $dir/
}
feiyong()
{
quwei=2;
datasum=( # 车船费记录
93.51
26.6
24.54
29.89
70.16
10.49
33.88
8.7
51.44
207.2
50.94
15.5
42.0
90.5
35
17.00
)
cblist=( # 餐补标准
60 # 60元/天
20 # 20 天
)
zslist=( # 住宿费标准
170 # 住宿 170元/天
19 # 19 天
)
}
chechaun()
{
feiyong
ccsum=0 # sum 初始数值为 数组第一个元素
echo "default sum is : $ccsum"
for((i=0;i<${#datasum[*]};i ))
do
x="${datasum[$i]}"
p=$ccsum # sum 会自动增加,在增加之前将数值存入变量,得到 sum 增加之前的数值
ccsum=`echo " " | awk -v x="$x" -v sum="$ccsum" -v quwei=$quwei '{printf "%.2f", sum x }'`
echo "车船报销费: sum = sum x = $p $x = $ccsum "
done
echo "" ; echo ""; echo "" ;
}
canbu()
{
feiyong
x=${cblist[0]};
y=${cblist[1]};
cbsum=`echo " " | awk -v x="$x" -v y="$y" '{printf "%.2f", x*y}'`
cbsumstr=`echo "餐补为: cbsum = $x x $y = $cbsum"`
}
zhusu()
{
feiyong
x=${zslist[0]} ;
y=${zslist[1]} ;
zssum=`echo "" | awk -v x="$x" -v y="$y" '{printf "%.2f", x*y}' `
zssumstr=`echo "住宿补为: zssum = $x x $y = $zssum"`
}
fcdanwei()
{
daxielist=(
零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万 亿 元 角 分 整
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
)
case "$psumzhengLenght" in
1) echo "当前长度为 1 为 元 单位" ; danwei=${daxielist[15]} ;;
2) echo "当前长度为 2 为 拾 单位" ; danwei=${daxielist[10]} ;;
3) echo "当前长度为 3 为 佰 单位" ; danwei=${daxielist[11]} ;;
4) echo "当前长度为 4 为 仟 单位" ; danwei=${daxielist[12]} ;;
5) echo "当前长度为 5 为 万 单位" ; danwei=${daxielist[13]} ;;
9) echo "当前长度为 6 为 亿 单位" ; danwei=${daxielist[14]} ;;
*) echo "未定义长度单位" ;;
esac
case "$psumxiaoLenght" in
1) echo "当前长度为 1 为 分 单位" ; danwei=${daxielist[17]} ;;
2) echo "当前长度为 2 为 角 单位" ; danwei=${daxielist[16]} ;;
*) echo "未定义长度单位" ;;
esac
case "$shuzi" in
0) hanzi=${daxielist[0]} ; echo "当前数字为 0 为 对应大写汉字:$hanzi " ;echo "" ;;
1) hanzi=${daxielist[1]} ; echo "当前数字为 1 为 对应大写汉字:$hanzi " ;echo "" ;;
2) hanzi=${daxielist[2]} ; echo "当前数字为 2 为 对应大写汉字:$hanzi " ;echo "" ;;
3) hanzi=${daxielist[3]} ; echo "当前数字为 3 为 对应大写汉字:$hanzi " ;echo "" ;;
4) hanzi=${daxielist[4]} ; echo "当前数字为 4 为 对应大写汉字:$hanzi " ;echo "" ;;
5) hanzi=${daxielist[5]} ; echo "当前数字为 5 为 对应大写汉字:$hanzi " ;echo "" ;;
6) hanzi=${daxielist[6]} ; echo "当前数字为 6 为 对应大写汉字:$hanzi " ;echo "" ;;
7) hanzi=${daxielist[7]} ; echo "当前数字为 7 为 对应大写汉字:$hanzi " ;echo "" ;;
8) hanzi=${daxielist[8]} ; echo "当前数字为 8 为 对应大写汉字:$hanzi " ;echo "" ;;
9) hanzi=${daxielist[9]} ; echo "当前数字为 9 为 对应大写汉字:$hanzi " ;echo "" ;;
*) echo "未定义数字大写" ;;
esac
}
shengcheng()
{
for((i=0;i<=9;i )) # 我是 case 代码生成工具
do
echo " $i) hanzi=${daxielist[$i]} ; echo "当前数字为 $i 为 对应大写汉字:$hanzi " ;echo "" ;; ";
done
}
capitalize()
{
sumzheng=`echo $zongsum | awk -F"." '{print $1}'`
sumxiao=`echo $zongsum | awk -F"." '{print $2}'`
sumzhengLenght=${#sumzheng}
sumxiaoLenght=${#sumxiao}
echo "整数部分: $sumzheng 长度 $sumzhengLenght 小数部分 : $sumxiao 长度:$sumxiaoLenght " ; echo ""
for((i=0;i<$sumzhengLenght;i ))
do
shuzi=${sumzheng:$i:1}
psumzhengLenght=$[sumzhengLenght-i]
echo "截取数字,第 $i 个位置 截取 一个数字为: $shuzi 当前剩余长度为: $psumzhengLenght = $sumzhengLenght - $i "
fcdanwei
daxiezhi[$i]=`echo $hanzi $danwei `
done
psumzhengLenght="null";
echo "#------- 大写结束 重置 大写匹配参数,不再匹配大写环境 ---------#" ; echo "";
for((i=0;i<$sumxiaoLenght;i ))
do
shuzi=${sumxiao:$i:1}
psumxiaoLenght=$[sumxiaoLenght-i]
echo "截取数字,第 $i 个位置 截取 一个数字为: $shuzi 当前剩余长度为: $psumxiaoLenght = $sumxiaoLenght - $i "
fcdanwei
Xdaxiezhi[$i]=`echo $hanzi $danwei `
done
}
main()
{
chechaun
canbu
zhusu
a="$ccsum";
b="$cbsum";
c="$zssum";
echo "";
canzhusum=`echo "" | awk -v b="$b" -v c="$c" '{printf "%.2f", b c}' `
zongsum=`echo "" | awk -v a="$a" -v b="$b" -v c="$c" '{printf "%.2f", a b c}'`
capitalize
#shengcheng
echo "车船费: $ccsum $cbsumstr $zssumstr " ; echo ""
echo "餐住总和: $canzhusum " ; echo "" ; echo "所有费用: $zongsum" ; echo ""
echo "#----------------------#"
echo "大写: ${daxiezhi[*]} ${Xdaxiezhi[*]}"
echo "#----------------------#"
}
main
# 一键使用: wget eisc.cn/file/ubuntu/shell/tools/file/chuchai-sum.sh; sudo chmod x chuchai-sum.sh ; ./chuchai-sum.sh