仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1093|回复: 8
打印 上一主题 下一主题

[shell编程] 给大家带来shell完成数学运算函数

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!比来剧本中老是必要盘算,每次都用awk会对照贫苦,就把awk的加减乘除封装了下,每次挪用间接sourcemath.sh就能够了。

有些要点要指出,以避免今后修正的时分健忘:
1、对两个数字举行判别是不是为数字,利用awk举行婚配
2、对两个参数举行轮回校验(写两次校验显得愚笨),必要利用变量的援用${!para}。
  1. #!/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
  2. ",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
  3. ",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
  4. ",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
  5. ",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
  6. ",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
  7. ",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
  8. ",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
  9. ",num_a-num_b}`;echo$ref;}
复制代码


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
山那边是海 该用户已被删除
沙发
发表于 2015-1-15 08:19:23 | 只看该作者

给大家带来shell完成数学运算函数

鄙视楼下的顶帖没我快,哈哈
透明 该用户已被删除
板凳
发表于 2015-1-21 20:50:34 | 只看该作者
我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
第二个灵魂 该用户已被删除
地板
发表于 2015-1-30 22:39:56 | 只看该作者
我感觉linux的学习,学习编程~!~!就去学习C语言编程!!
柔情似水 该用户已被删除
5#
发表于 2015-2-6 16:51:21 | 只看该作者
随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。
因胸联盟 该用户已被删除
6#
发表于 2015-2-17 15:54:41 | 只看该作者
通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在Linux环境下运行,转换目录等等。学了这些基础才能进行下面的模拟OS程序。?
简单生活 该用户已被删除
7#
发表于 2015-3-5 22:13:53 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-12 16:37:58 | 只看该作者
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-20 01:20:05 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-25 00:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表