给大家带来shell完成数学运算函数
欢迎大家来到仓酷云论坛!比来剧本中老是必要盘算,每次都用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~/^[+-]??*(.*)?$/)?"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教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
给大家带来shell完成数学运算函数
鄙视楼下的顶帖没我快,哈哈 我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。 我感觉linux的学习,学习编程~!~!就去学习C语言编程!! 随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。 通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在Linux环境下运行,转换目录等等。学了这些基础才能进行下面的模拟OS程序。? 虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。 永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。 其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
页:
[1]