http://blog.sina.com.cn/s/blog_6db275da0101asmf.html

#!/bin/sh
let a=$1+$2
b=$[$1+$2]
((c=$1+$2))
d=`expr $1 + $2`
echo "$1+$2 = ${a}"
echo "$1+$2 = $b"
echo "$1+$2 = $c"
echo "$1+$2 = $d"

输入命令:./plus 1 2

输出结果:1+2 = 3

1+2 = 3

1+2 = 3

1+2 = 3

Let expressions 执行一个或多个表达式。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起来。

例:let “I = I + 1” 或 let i=i+1

算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。Shell中常用的数学运算符如下所示。

— +:对两个变量做加法。

— -:对两个变量做减法。

— *:对两个变量做乘法。

— /:对两个变量做除法。

— **:对两个变量做幂运算。

— %:取模运算,第一个变量除以第二个变量求余数。

— +=:加等于,在自身基础上加第二个变量。

— -=:减等于,在第一个变量的基础上减去第二个变量。

— *=:乘等于,在第一个变量的基础上乘以第二个变量。

— /=:除等于,在第一个变量的基础上除以第二个变量。

— %=:取模赋值,第一个变量对第二个变量取模运算,再赋值给第一个变量。

在使用这些运算符时,需要注意到运算顺序的问题。例如输入下面的命令,输出1+2的结果。

echo 1+2

Shell并没有输出结果3,而是输出了1+2。在shell中有三种方法可以更改运算顺序。

— 用expr改变运算顺序。可以用echo `expr 1 +2`来输出1+2的结果,用expr表示后面的表达式为一个数学运算。需要注意的是,`并不是一个单引号,而是“Tab”键上面的那个符号。

— 用let指示数学运算。可以先将运算的结果赋值给变量b,运算命令是b=let 1 + 2。然后用echo$b来输出b的值。如果没有let,则会输出1+2。

— 用$[]表示数学运算。将一个数学运算写到$[]符号的中括号中,中括号中的内容将先进行数学运算。例如命令echo$[1+2],将输出结果3。

下面是一个shell程序实例,实现数学函数S=3(xy)+4x2+5y+6的运算。在程序中以位置变量的方式输入x与y的值。程序的编写步骤如下所示。

在主菜单中打开一个终端。在终端中输入“vim”命令打开VIM。

在VIM中按“i”键进入插入模式,然后输入下面的代码。

代码4-2  数学运算实例:\源文件\04\4.4.sh

#!/bin/bash

#4.4.sh

s=0                                    #定义一个求和变量,初值为0。

t=`expr$1**$2`                        #用expr改变运算顺序,求x的y次方。

t=$[t*3]                               #t乘以3。

s=$[s+t]                               #结果相加。

t=$[$1**2]                             #求x的平方。

t=$[t*4]                               #结果乘以4。

s=$[s+t]                               #结果相加。

t=`expr$2*5`                          #求5y的值。

s=$[s+t]                               #结果相加。

s=$[s+6]                               #结果加上6。

echo$s                                #输出结果。

echo$((a%b))                          #取余

在这个程序中,需要注意算术运算的写法。如果没有expr或$[]更改运算顺序,则会将运算式以字符串的形式赋值,而不会赋值运算结果。

按“Esc”键返回到普通模式。然后输入“:w 4.4.sh”保存文件。

输入“:q”命令,按“Enter”键退出VIM。

在终端中,输入下面的命令对4.4.sh文件添加可执行权限。

chmod +x 4.4.sh

输入下面的命令运行程序。在命令中需要输入两个参数。

./4.4.sh 2 4

程序会完成S=3(xy)+4x2+5y+6的数学运算并输出结果,结果如下所示。

90

 

Linux Shell编程(5):整数运算的更多相关文章

  1. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  2. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  3. Linux Shell编程参考大全

    本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...

  4. 一文学完Linux Shell编程,比书都好懂

    一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...

  5. 前端学习 linux —— shell 编程

    前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...

  6. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  7. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

  8. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

  9. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

随机推荐

  1. PHP一些函数

     函数不定参数: func_num_args // 获得参数个数 func_get_args // 获得参数数组 call_user_func('function_name', $parameter) ...

  2. CXF+Spring 搭建的WebService

    1.创建类 2.接口编写 package com.fan; import javax.jws.WebService; @WebService public interface IHelloWorld ...

  3. [你必须知道的.NET]第三十二回,,深入.NET 4.0之,Tuple一二

    发布日期:2009.06.01 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. Tuple,是函数式编程的概念之一,早见于Elang.F#等动态 ...

  4. VISO下载地址

    http://pan.baidu.com/share/home?uk=4011207371#category/type=0

  5. eclipse引入tomcat

    1.默认大家的tomcat都已经安装好了,这里打开eclipse,选择windows,下面的属性(preference). 2.进入到属性配置页,选择server  --   runtime Envi ...

  6. NoSQL数据库有哪些

    NoSQL太火,冒出太多产品了,保守估计也成百上千了. 互联网公司常用的基本集中在以下几种,每种只举一个比较常见或者应用比较成功的例子吧. 1. In-Memory KV Store : Redis ...

  7. idea新建maven项目时,mvn archetype:generate 速度缓慢

    原文 idea新建maven项目时,mvn archetype:generate 速度缓慢 1 现象: 用IDEA新建maven项目,填写完各种参数,创建时,控制台卡在“[INFO] Generati ...

  8. Android ScaleAnimation类:尺寸变化动画类

    ScaleAnimation类是Android系统中的尺寸变化动画类,用于控制View对象的尺寸变化,该类继承于Animation类. ScaleAnimation类中的很多方法都与Animation ...

  9. java eclise的配置

    java eclise的配置 http://jingyan.baidu.com/album/870c6fc33e62bcb03fe4be90.html?picindex=24

  10. ajax练习习题三搜索

    做一个汽车搜索页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...