Linux Shell编程(5):整数运算

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

((i=$j+$k))    等价于 i=`expr $j + $k`
((i=$j-$k))     等价于   i=`expr $j -$k`
((i=$j*$k))     等价于   i=`expr $j \*$k`
((i=$j/$k))     等价于   i=`expr $j /$k`

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

时间: 2024-09-29 09:53:52

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

Linux Shell编程之二选择结构

Shell编程学习之二 一.bash的条件测试 测试方法或者说测试书写: test EXPR [ EXPR ] [[ EXPR ]] 例如:测试变量 User_Name 的之是否为root test $User_Name="root" [ $User_Name == "root" ] [[ $User_Name == "root" ] 根据比较时操作数的类型,测试类型分为: 测试类型 运算符 运算符所代表的意义 示例 整形测试 -gt -lt -

Linux Shell 编程实战技巧

目前,越来越多的企业应用会部署在 Linux 系统上的,而 Linux Shell 脚本可以极大地帮助我们完成这些应用的运维任务.这使得 Linux Shell 开发技能成为开发人员的一项重要的.有竞争力的技能.本文就笔者的实际开发经验,以 Korn Shell 为例分享了脚本开发中的常见问题及相关技巧. 避免定时任务脚本的常见问题 很多脚本在实际使用的时候往往是以定时任务的方式运行,而非手工运行.但是实现同样功能的脚本在这两种运行方式下可能遇到的问题不尽相同. 以定时任务方式运行的脚本往往会遇

Linux Shell编程之五字符串的处理

shell编程之字符串处理 在 shell 中,由于是一种弱类型的语言,在没有事先申明变量类型的情况下,所有的变量都是字符串.所以对字符串的处理就显得相当重要了. 下面介绍常见的对字符串处理的操作. 一.字符串切片 ${string_var:offest:length},类似于数组元素的提取. # 这里的string_var是一个变量,offest 是字符串的开始偏移量,length是切去字符串的长度 var=dhcpd:x:177:177:DHCP server:/:/sbin/nologin

关于linux shell编程,alias rm='cp [email protected] ~/backup; rm [email protected]'

书上的这个例子需要在ubuntu的低版本的系统才支持,现在基本上都不支持了,想实现也很简单自己写一个脚本先备份再删除. alias也只是做了一次替换alias rm='cp [email protected] ~/backup; rm [email protected]' rm text.txt被转换成了cp  [email protected] ~/backup; rm [email protected] text.txt即cp  ~/backup; rm  text.txt可以看到text.

京峰Linux Shell编程从入门到精通

课程介绍:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. -------------------课程目录------------------- <Shell编程从入门到精通> ├1.linux下shell编程基础入门_(new).mp4├2.Shell编程之变量及LAMP导航菜单编写_(new).mp4├3.Shell编程之IF条件语句各种案例演练_(new).mp4├4.使用if条件语句编写MySQL备份脚本_(new).mp4

Linux Shell编程基础

在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐藏  -R 显示文件夹内的内容  -c 按照最后一次修改时间排序  -t 按照修改时间排序输出 echo 显示  -n 不换行 touch  创建一个文件,或者修改文件的访问时间和修改时间 touch -a file 只更改访问时间 -m之更改修改实际那 -t指定特定时间 cp  复制文件 -a 保

linux shell编程

1.什么是shell 2. 还是hello world程序 3. shell中的变量 3.1 系统变量 3.2 用户定义变量 3.2.1 用户定义变量规则 3.2.3 shell如何使用变量 3.2.3 全局变量 vs 局部变量 4. shell编程中的控制结构 4.1 条件判定 4.1.1 简单条件判定 4.1.2 组合判定 4.2  if - else 4.3 for 4.4 while 4.5 case 5. shell中的函数 5.1 函数声明和定义 5.2 函数调用 6. shell脚

Linux Shell编程讲解

Shell编程总结 Seq命令总结用法: 选项: -f, --format=格式使用printf 样式的浮点格式 -s, --separator=字符串使用指定字符串分隔数字(默认使用:\n) -w, --equal-width 在列前添加0 使得宽度相同实例 来自: http://man.linuxde.net/seq 1.横着打印数字 2.竖着打印数字: 3.用seq输出,交给bc命令计算 注:可以计算加减乘除,浮点数,进制转换 Echo命令用法总结: echo 选项列表 选项 描述 -n

Linux Shell编程入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用.深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bourne