快速业务通道

读书笔记--101个shell脚本--05

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-31

说到就要要尽量做到,每天一个脚本分析

废话不多说,

The Code

#!/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


拥有帝国一切,皆有可能。欢迎访问phome.net

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

本文出自 “你就当我是浮夸吧” 博客,请务必保留此出处http://2804976.blog.51cto.com/2794976/591479

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号