欢迎来到代码驿站!

Shell

当前位置:首页 > 脚本语言 > Shell

shell脚本nicenumber实现代码

时间:2021-02-09 14:31:12|栏目:Shell|点击:

Given a number, shows it in comma-separated form.Expects DD and TD to be instantiated. Instantiates nicenum. or, if a second arg is specified, the output is echoed to stdout.

废话不多说,首先是

#!/bin/sh
# nicenumber -- Given a number, shows it in comma-separated form.
# Expects DD and TD to be instantiated. Instantiates nicenum
# or, if a second arg is specified, the output is echoed to stdout.

nicenumber()
{
 # Note that we assume that '.' is the decimal separator in
 # the INPUT value to this script. The decimal separator in the output value is
 # '.' unless specified by the user with the -d flag

 integer=$(echo $1 | cut -d. -f1)       # left of the decimal
 decimal=$(echo $1 | cut -d. -f2)       # right of the decimal

 if [ $decimal != $1 ]; then
  # There's a fractional part, so let's include it.
  result="${DD:="."}$decimal"
 fi

 thousands=$integer

 while [ $thousands -gt 999 ]; do
  remainder=$(($thousands % 1000))  # three least significant digits

  while [ ${#remainder} -lt 3 ] ; do # force leading zeros as needed
   remainder="0$remainder"
  done

  thousands=$(($thousands / 1000))  # to left of remainder, if any
  result="${TD:=","}${remainder}${result}"  # builds right to left
 done

 nicenum="${thousands}${result}"
 if [ ! -z $2 ] ; then
  echo $nicenum
 fi
}

DD="." # decimal point delimiter, to separate integer and fractional values
TD="," # thousands delimiter, to separate every three digits

while getopts "d:t:" opt; do
 case $opt in
  d ) DD="$OPTARG"  ;;
  t ) TD="$OPTARG"  ;;
 esac
done
shift $(($OPTIND - 1))

if [ $# -eq 0 ] ; then
 echo "Usage: $(basename $0) [-d c] [-t c] numeric value"
 echo " -d specifies the decimal point delimiter (default '.')"
 echo " -t specifies the thousands delimiter (default ',')"
 exit 0
fi

nicenumber $1 1     # second arg forces nicenumber to 'echo' output

exit 0

这脚本我们以后分析,现在先mark下。

上一篇:Shell脚本实现的基于SVN的代码提交量统计工具

栏    目:Shell

下一篇:Shell命令行中特殊字符与其转义详解(去除特殊含义)

本文标题:shell脚本nicenumber实现代码

本文地址:http://www.codeinn.net/misctech/59622.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有