`

shell实现四则运算简单方法

 
阅读更多

在刚刚学习写shell 批处理时候,进行逻辑运算中,少不了需要进行基础的:四则运算,这里说说在linux shell 里面简单的实现方法。
1.简单方法
$ b=$((5*5+5-3/2))
$ echo $b
29

在linux shell中,我们可以使用 $(()) 将表达式放在括号中,即可达到运算的功能。
2.其它方法:
用:expr 实现运算
$ expr 5 - 4
1

注意:将需要运算的表达式写入在expr 后面即可,保证 参数与运算符号中间有空格隔开。

 

类别 语法 说明
条件判断 expr1 \| expr2 如果 expr1 不是零或 null 则传回 expr1,否则传回 expr2。
expr1 \& expr2 如果 expr1 及 expr2 都不为零或 null,则传回 expr1,否则传回 0。
四则运算 expr1 + expr2 传回 expr1 加 expr2 后的值。
expr1 - expr2 传回 expr1 减 expr2 后的值。
expr1\* expr2 传回 expr1 乘 expr2 后的值。
expr1 / expr2 传回 expr1 除 expr2 后的值。
expr1 % expr2 传回 expr1 除 expr2 的余数。
大小判断 expr1 \> expr2 如果 expr1 大于 expr2 则传回 1,否则传回 0。如果 expr1 及 expr2 都是数字,则是以数字大小判断,否则是以文字判断。以下皆同。
expr1 \< expr2 如果 expr1 小于 expr2 则传回 1,否则传回 0。
expr1 = expr2 如果 expr1 等于 expr2 则传回 1,否则传回 0。
expr1 != expr2 如果 expr1 不等于 expr2 则传回 1,否则传回 0。
expr1 \>= expr2 如果 expr1 大于或等于 expr2 则传回 1,否则传回 0。
expr1 \<= expr2 如果 expr1 小于或等于 expr2 则传回 1,否则传回 0。
文字处理 expr1 : expr2 比较一固定字符串,即 regular expression。可以使用下列字符来辅助:

. 匹配一个字符。

$ 找字符串的结尾。

[list] 找符合 list 中的任何字符串。

* 找寻 0 个或一个以上在 * 之前的字。

\( \) 传回括号中所匹配的字符串。

3.浮点运算

$ expr 5.0 - 4
expr: non-integer argument

$ echo $((5.0-4))

-bash: 5.0-4: syntax error in expression (error token is ".0-4")

从上面运算结果,看来上面表达式,不足以支持浮点运算了 查阅资料才发现:bash 不支持浮点运算,如果需要进行浮点运算,需要借助bc,awk 处理。

方法一:
[chengmo@centos5 ~]$ c=$(echo "5.01-4*2.0"|bc)
[chengmo@centos5 ~]$ echo $c
-2.99

方法二:
[chengmo@centos5 ~]$ c=$(awk 'BEGIN{print 7.01*5-4.01 }')
[chengmo@centos5 ~]$ echo $c
31.04

注:在shell 中$() 与 ``等效。 中间包含命令语句执行,返回执行结果。


参考至:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839556.html

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    shell 实现简单四则运算

    用Shell 脚本实现简单的四则运算,有菜单提示等

    eclipse下的简单计算器

    通过学习这个例子,可以掌握基本的界面布局技巧、事件监听机制以及简单的数据处理方法。此外,还可以在此基础上扩展更多的功能,如支持更多复杂的数学运算、增加更丰富的界面元素等。 总之,这个项目不仅能够帮助...

    shell必学必会命令

    常用的自动化工具包括但不限于Ansible、Puppet、Chef等,而脚本语言如Shell则是实现自动化运维的重要手段之一。 ##### 1.2 Shell 简介 ###### 1.2.1 什么是Shell Shell是一种用于接收并解释用户命令的程序,它...

    Shell脚本专家指南

    - **用Bourneshell实现进程树**:利用Bourneshell特性实现进程树的功能。 #### 第9章 数据重定向 - **避免错误**:讲解了如何正确使用重定向来避免常见的错误。 - **普通重定向**:介绍了标准输入、输出和错误的...

    linux shell example例子

    其中一个脚本展示了如何设计一个简单的Shell菜单,使用`until`循环和`case`语句来构建多级菜单,允许用户选择执行不同的命令,如列出目录、改变目录、编辑文件、删除文件或退出菜单。 ### 知识点七:变量赋值与输出...

    Shell十三问.pdf

    当使用 `var=value` 定义一个变量时,如果没有使用 `export` 命令,则该变量只在当前 Shell 会话中有效。而使用 `export var=value` 定义的变量可以在后续的子进程中被访问。 #### 六、`exec` 与 `source` 的区别 ...

    shell+sed+regular+awk+find学习资料

    在Linux系统管理中,Shell脚本是自动化任务的基石,而`sed`、`awk`、`find`和正则表达式(Regular Expression)则是Shell编程中的四大利器,它们极大地提高了命令行操作的效率和灵活性。以下是这些工具的详细介绍: ...

    一个shell面试题

    从给定的文件信息中,我们可以提炼出几个与Shell脚本相关的高级知识点,...通过以上案例,我们可以看到Shell脚本的强大之处,它能够灵活地处理各种文本和数据操作需求,从简单的文本替换到复杂的逻辑运算,都能胜任。

    用lex&yacc制作的计算器

    因为在unix上自带的bshell就有这些功能。 cygwin里面也有这些。 可是,这种基本的功能,在win32平台下,微软似乎忘了。 有个外国人写了个软件Parser Generator (bum-bee). 他把unix的这些功能,做了个软件放到win32...

    shell简单应用.docx

    - 通过读取用户输入,使用`expr`或`bc`命令进行四则运算。 12. **文件存在性检查与创建**: - `test -e`检查文件是否存在,`touch`创建文件。 13. **数字比较**: - `read`读取用户输入,使用`if`语句比较大小...

    实验2-shell及shell编程.doc

    ### 实验2-shell及shell编程知识点详解 #### 一、实习目的 - **学习 shell 的功能及相关配置文件**: - 了解 shell 的基本概念及其作为 Linux/Unix 系统的用户界面的作用。 - 掌握 `/etc/profile`、`$HOME/.bash...

    SHELL编程基础(ppt)

    同时,Shell也是一种程序设计语言,允许用户通过编写脚本来实现自动化任务。 - **Bash Shell简介**:Bash,即Bourne Again Shell,是AT&T在设计Unix时所创建的Bourne Shell的改进版本,由GNU项目开发,是当前Linux...

    shell编程基础 适合于初学者

    - **二进制到十进制的转换**:可以使用`bc`命令或者简单的算术运算实现。 - **文件循环拷贝**:使用`for`循环结合`cp`命令实现。 #### 十、脚本调试 - **调试技巧**:利用`echo`命令打印变量和执行状态,或者使用`...

    UNIX Shell 范例精解 第14章课后作业

    在"UNIX Shell 范例精解 第14章课后作业"中,我们关注的是第四版的第14.13章节,具体涉及了从习题54到61的部分作业。由于这是一个学习过程,可能会包含一些错误,这正是自我修正和提高的机会。 首先,让我们来理解...

    Linux实验报告(实验四) shell编程实验.docx

    实现了一个简单的命令行计算器,可以处理加、减、乘、除四种基本运算。用户输入表达式、操作符和答案,程序会计算正确答案并与用户输入的答案比较。使用`case`语句处理不同的运算符,`expr`命令进行数学计算。当...

    shell脚本语法

    ### Shell脚本语法详解 #### 一、Shell脚本基础 **Shell脚本**是一种用于自动化执行Linux或Unix系统中的任务的脚本语言。...通过掌握这些基本概念和技术,您可以有效地编写和维护shell脚本,实现自动化任务处理。

Global site tag (gtag.js) - Google Analytics