变量的数值计算常见的有如下几个命令:
(()) let(bash内部命令) expr bc $[ ]
1) (())最常用,效率最高
一般用于整数运算 ,shell的算术运算符号都置于"$(("和"))"之中。
常用的逻辑符号:++,--,*,/,%,<,<=,>=,==,!=,&&,||,**。
变量表达式定义:((a=1+2**3-4%3))或者 b=$((1-2))
a++是先输出a本身的值,++a是运算后再输出运算结果的值
记忆方法:变量在前,先输出变量值。变量在后,先运算后输出变量的值。
#!/bin/bash
a=$1 b=$2
echo "a-b=$(($a - $b))"
echo "a+b=$(($a + $b))"
[root@desk ~]# sh 1.sh 12 12
a-b=0
a+b=24http://write.blog.csdn.net/postedit?ref=toolbar
简单的整数加减乘除计算器:
#!/bin/bash
echo $(($1$2$3))
或者:
http://write.blog.csdn.net/postedit?ref=toolbar#!/bin/bash
echo $(($1))
let命令:
[root@desk ~]# i=2
[root@desk ~]# i=i+8
[root@desk ~]# echo $i
i+8
输出的结果相当于把i+8赋值给i
[root@desk ~]# i=2
[root@desk ~]# let i=i+8
[root@desk ~]# echo $i
10
小结: let i=i+8 等同于((i=i+8)),并且效果不如双小括号好!
unset i ##取消掉对i的定义!
expr命令
expr命令用于整数,并且之间要有空格
[root@desk ~]# expr $[2+2]
4
[root@desk ~]# expr 2 / 2
1
[root@desk ~]# expr 2/2
2/2
[root@desk ~]# expr length "sadawds"
7
等等一些列的功能!
比较各种变量长度方法的对比:
wc -l ##
-m ##
-L ##字节长度
-c ##字节数
-w ##单词数
expr length "字符串"
${#str}
seq命令
seq命令用于产生某个数到另外一个数之间的所有整数。格式:
1.seq -s "字符串" 1 10 ##1到10进行排列,中间的分隔符为“字符串”
[root@desk ~]# seq -s " " 3 9
3 4 5 6 7 8 9
[root@server1 test]# seq -s " " 3 -1 0
3 2 1 0 ## 从3开始,-1为增量,打印到0
2.seq -f ##指定格式
[root@desk ~]#seq -f"%3g" 9 11 9 10 11 [root@desk ~]# seq -f "%30g" 9 11 9 10 11所以,%后面跟位置的位数。
[root@desk ~]# seq -f "str%010g" 9 11 str0000000009 str0000000010 str0000000011这样子,前面空格的部分由0填充
3.seq -w ##-w选项:指定输出数字同宽
seq -w 98 101 098 099 100 101不能和-f同用,输出是同宽的