bash编程之:算术运算

日期: 2015年09月13日

算术运算

Shell默认不支持浮点数,所以计算结果中的浮点数会被圆整为整数,

如:1.03>1;4.99>4

算术运算的方式:

(1) $[$A+$B]

(2) VARIABLE=$((expression))

(3) let VARIABLE=$A+$B

(4) expr $A + $B

(5) bc

运算符:

++ --  增加或减少,(符号在变量前,先输出运算后的结果,符号在变量后,则先输出变量原来的值)

+ - ! ~  一元的正号与负号、逻辑与位的取反

* / %  乘法、除法、取余

**  次方

+ -  加法、减法

< <= > >=  比较符号

== !==  等于、不等于 (与=不同,=是赋值,==是判断)

<<  >>  向左位移、向右位移

&  位的and

^  位的异或

|  位的或

&&  逻辑的and

||  逻辑的or

?:  条件表达式

=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 <<=、 >>=、 |=  d

赋值运算符 a+=1 相当于 a=a+1

示例:

演示各种算术运算的方法

增强型赋值

+=

sum=$[$sum+$i]

let sum+=$i

-=, *=, /=, %=

let count=$[$count+1] --> let count+=1 --> let count++

let count$[$count-1] --> let count-=1 --> let count--

示例:

显示/etc/目录下每个普通文件列表,而后统计一共有多少个文件

脚本执行结果

bc的用法:

bc的独有特点是支持小数运算:

# echo 1.1+1.7 | bc

2.8

# echo 5.8-1.6 | bc

4.2

# echo 2.5*3.0 | bc

7.5

# echo 2.5/.25 | bc

10

bc还支持不同进制数据的转换:

十进制7转换为二进制:

# echo "obase=2;7" | bc

111

十进制15转换为16进制:

# echo "obase=16;15" | bc

F

示例:

通过命令输出1+2+3..+10的表达式,并计算结果,输出内容如:1+2+3+4+5+6+7+8+9+10=xx

# echo `seq -s ‘+‘ 10`=`seq -s"+" 10 | bc`

1+2+3+4+5+6+7+8+9+10=55

# echo "`seq -s ‘+‘ 10`="$((`seq-s "+" 10`))

1+2+3+4+5+6+7+8+9+10=55

# echo `seq -s ‘+‘ 10`=`seq -s " +" 10 | xargs expr`

1+2+3+4+5+6+7+8+9+10=55

时间: 2024-07-28 19:08:39

bash编程之:算术运算的相关文章

bash编程之case语句

一.语法格式 case 变量引用(${}) in value1)    #变量的值是value1,则执语句1,语句2,······ 语句1 语句2 ······ ;;    #每个分支结束时都需要以双分号结尾 value2)    #变量的值是value2,则执语句3,语句4,······ 语句3 语句4 ······ ;; value3)    #变量的值是value3,则执语句5,语句6,······ 语句5 语句6 ······ ;; *)    #其他任意情况,则执行语句7,语句8,··

bash编程之:case语句、read与用户交互

日期: 2015年09月13日 case语句 case语句:该语句和if并无太大差别,主要作用是使代码的逻辑结构更清晰. case语句可以称为是:简洁版的多分支if语句 使用场景:判断某变量的值是否为多种情形中的一种时使用 case语句的用法格式为: case $VARIALBE in PATTERN1) 分支1 ;;     <================注意:这两个分号不要忘记写,否则语法错误 PATTERN2) 分支2 ;;     <================注意:这两个分号

bash编程之:条件测试

日期: 2015年09月13日 <<========================================[条件测试]========================================>> 条件测试 bash的条件测试主要有以下3类: 整数测试:比较两个整数谁大谁小,是否相等: 字符测试:比较两个字符串是否相等: 文件测试:测试某个文件是否具有读权限.写权限.执行权限等: (1) 根据运行的命令的状态结果判断 (2) 在bash中进行条件测试的方式通常有三种

Linux Bash编程之bash

其实编辑完bash脚本后,可以用过bash -n -x 两个选项进行脚本检查,不一定非要运行程序的时候才发现需要修改脚本. bash不仅有运行脚本的意思. 没有消息就是好消息. 我现在稍微修改下原来的脚本 -n的效果我现在演示不出来,之前是可以直接指出语法错误的 这个是之前的效果. -x 可以将指令和输出内容区分 -v不可以 -x 和 -v都是细致化的命令调试工具,他们 原文地址:http://blog.51cto.com/yueyue207/2090520

bash编程之:函数与数组

日期: 2015年09月13日 <<======================================[函数]======================================>> 函数: function:功能 把一段具有独立功能代码封装在一起,并给予命名:后续用到时, 可直接通过给定函数名来调用整体代码: 函数作用: 1.把相同的程序段定义成函数,可以减少程序代码量 2.增加程序的可读.易读性 3.实现程序的功能模块化 函数的使用方法: 先定义:编写函数代码

bash编程之:if语句

日期: 2015年09月13日 if语句 单分支if语句格式: if CONDITION; then if-true-分支 fi ★(then亦可以书写为单独一行,如果要跟条件放在同一行则与条件之间要使用分号;隔开) 示例: 给定一个文件路径,如果该文件存在,则显示该文件存在,不存在则不显示任何信息 运行该脚本测试: 双分支if语句格式: if CONDITION; then if-true-分支 else if-true-分支 fi 示例: 给定一个文件路径,如果该文件存在,则显示该文件存在,

bash编程之:流程控制

日期: 2015年09月13日 流程控制 循环语句:for, while, until 循环:将循环体代码执行0.1或多次 进入条件:进入循环的条件 退出条件:循环终止的条件 <<========================================[for循环]========================================>> for循环: for VARIABLE in LIST; do 循环体 done 进入条件:列表非空 退出条件:当列表遍历结束

bash编程之xargs实用技巧

xargs结合管道操作符|,可以完成很多看似复杂的问题: 1.快速删除所有.log日志文件 机器运行久了,就会有各式各样的日志文件,散落在各个目录下,可以利用下面的方法: find ./ -name '*.log' | xargs rm -rf 上面的代码,先把当前目录及子目录下的所有后缀是log的文件找出来,然后做为参数,传递给 rm -rf ,这样就把日志文件给干掉了. 2.根据名字找到运行的进程并杀掉 比如:有一个java程序在服务器上,我们在写部署脚本时,要先把之前在运行的程序kill掉

shell编程之array

变量 : 内存空间 类型 shell编程中所有变量类型为字符类型array 数组 数组中变量叫做element (元素) ,数组中每个元素都用索引位置来标注声明数组declare -a ARRAY_NAME赋值方法1 :AA[0]=jerry赋值方法2 :br/>AA={jerry,tom,lucy}数组实例![](https://s1.51cto.com/images/blog/201907/09/d85fa8a4c0a1da0c0a4e8975ba9d285f.png?x-oss-proce