Shell脚本之六 数学计算】的更多相关文章

前面一节Shell篇之五 基本运算符介绍了常见的 Shell 算术运算符,这节介绍 Shell 的数学计算.Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令. 下面我们先来看一个反面的例子: #!bin/bash echo 2+8 a=23 b=$a+55 echo $b b=90 c=$a+$b echo $c 运行脚本: $ ./tesh.sh 2+8 23+55 从上面的运算结果可以看出,默认情况下,Shell 不会直接进行算术运算,而是把+两边的数据…
shell中的数学计算 一.使用方括号 #!/bin/bash a= b= c= res=$[$a * ($c-$b)] echo $res 二.使用(()) +)) ((i=+)) b=$((-*)) )) )) #计算a的平方 <)) #输出1 echo $((i++)) )) #产生一个不大于60的随机数 三.bc的用法 bc技术器实际上是一种编程语言,它可以识别: 数字(整数和浮点数)变量(简单变量和数组)注释(以#或C语言中的/* */开始的行)表达式编程语句(例如if-then语句)…
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 有时候需要计算命令的执行时间长度,可以使用time命令,虽然time命令可以精确到毫秒级,但time命令无法计算一堆命令的执行时间.可以直接使用date命令计算命令执行前后的时间差,但直接使用date命令计算时间差只能精确到秒级.因此,要计算毫秒级或者微秒级的时间长度,需要对date命令的结果进行一番计算转换. 本文只给出了毫秒级时间差的计算方法,若要计算微秒级时间差…
六.shell脚本的条件测试与比较 (一)条件表达式的常见语法 1.条件表达式6种写法(if,while) 语法1:test<测试表达式> 语法2:[ <测试表达式>] #中括号两端必须要有空格 语法3:[[<测试表达式>]] #两端必须要有空格 语法4:((测试表达式)) #两端必不需要空格 语法5:(命令表达式) 语法6:命令表达式 实际应用展示 ①[]条件表达式 [root@centos6-kvm3 scripts]# [ -e /etc/hosts ] &…
子网掩码格式为255.255.255.0可以通过以下脚本计算掩码位数 #!/bin/sh #maskdigits.sh mask maskdigits () { a=$(echo "$1" | awk -F "." '{print $1" "$2" "$3" "$4}') for num in $a; do while [ $num != 0 ];do echo -n $(($num%2)) >>…
1.1.第一种——expr格式:expr 操作数 1 操作符 操作数 2举例:      1 expr 1 + 2 TMP=$(expr 1 + 2)      2 expr 1 + 4 / 3 TMP=$(expr 1 + 4 / 3 )      3 expr 1 + 2 * 3(?)  //是错因为称号*是要写成\*特点:格式要求相对严格1.2.第二种——( )格式:$((操作数 1 操作符 操作数 2 ))举例:TMP=$((1 + 3)) 特点:格式要求相对较松1.3.第三种——let…
在某个时间点上增加一段时间 将时间转为时间戳,然后增加时间 [root@~]# date +%s -d '2017-05-27 12:0:0' 1495857600 [root@ ~]# new_time=`echo "1495857600 + 4800" | bc ` [root@ ~]# echo $new_time 1495862400 [root@ ~]# date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $new_time se…
#!/bin/bash #4.4.sh s= #定义一个求和变量,初值为0. t=`**$` #用expr改变运算顺序,求x的y次方. t=$[t*] #t乘以3. s=$[s+t] #结果相加. t=$[$**] #求x的平方. t=$[t*] #结果乘以4. s=$[s+t] #结果相加. t=`*` #求5y的值. s=$[s+t] #结果相加. s=$[s+] #结果加上6. echo$s #输出结果. echo$((a%b)) #取余…
直接上代码. #!/bin/bash no1= no2= echo "using let ..." let result=no1+no2 echo "result is: ${result}" let result++ echo "result after 1 increment is: ${result}" let result+= echo "result after 6 increment is: ${result}"…
本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 数学计算是Shell中比较常用的一种操作,  但是因为shell中所有的变量都默认为字符串, 这就使得在shell中进行数学计算比较复杂, 以下直觉上貌似正确的方法是不对的: #第一种错误方法 $ var=+ #第二种错误方法 $ var= $ var=$var+ 以上两种方法的输出结果都是1+1 , 而不是我们期望的2 . 在shell中进行数学计算可以通过以下方法来进行: 1. decl…