|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!比来剧本中老是必要盘算,每次都用awk会对照贫苦,就把awk的加减乘除封装了下,每次挪用间接sourcemath.sh就能够了。
有些要点要指出,以避免今后修正的时分健忘:
1、对两个数字举行判别是不是为数字,利用awk举行婚配
2、对两个参数举行轮回校验(写两次校验显得愚笨),必要利用变量的援用${!para}。- #!/bin/bash#############################重写shell中基础数学运算+-×/#工夫:2014-01-18#邮箱:jianye_jia@163.com#版本:version1.0#备注:今朝只撑持2位整数运算##################################################functionis_Digit()#判别参数是不是为数字#撑持浮点数#只能传进一个参数#是,前往1,不然前往0######################functionis_Digit(){ref=`echo$1|awk{print($0~/^[+-]?[0-9]?*(.[0-9]*)?$/)?"digit":"string"}`if["$ref"=="digit"];thenreturn0;elsereturn1;fi}####################functionmultiply()#判别参数是不是为数字#并将两个参数相乘#函数间接传进援用#变量的变量的完成${!para}#函数的前往值,不克不及像C一样return,#必要打印输入,echo###################functionmul(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%d
- ",num_a*num_b}`;echo$ref;}#########################functiondiv()#反省参数,前往两个数字差########################functiondiv(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%d
- ",num_a/num_b}`;echo$ref;}#########################functionadd()#反省参数,前往两个数字和########################functionadd(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%d
- ",num_a+num_b}`;echo$ref;}#########################functionsub()#反省参数,前往两个数字差########################functionsub(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%d
- ",num_a-num_b}`;echo$ref;}####################functionmul_f()#判别参数是不是为数字#并将两个参数相乘#函数间接传进援用#变量的变量的完成${!para}#函数的前往值,不克不及像C一样return,#必要打印输入,echo###################functionmul_f(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%0.2f
- ",num_a*num_b}`;echo$ref;}#########################functiondiv_f()#反省参数,前往两个数字差########################functiondiv_f(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%0.2f
- ",num_a/num_b}`;echo$ref;}#########################functionadd_f()#反省参数,前往两个数字和########################functionadd_f(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%0.2f
- ",num_a+num_b}`;echo$ref;}#########################functionsub_f()#反省参数,前往两个数字差########################functionsub_f(){for((i=1;i<3;i++))dopa="$i"ifis_Digit${!pa}thencontinue;elseecho"$paisntanumber";return0;fidoneref=`awk-vnum_a=$1-vnum_b=$2BEGIN{printf"%0.2f
- ",num_a-num_b}`;echo$ref;}
复制代码
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|