您的位置:首页 > 运维架构 > Shell

shell中变量自增的计算方法

2015-06-04 16:59 639 查看
1. 运用 expr

# expr 10 + 10 ===> 20

# a=`expr 10 % 3`;  echo $a ===> 1   注意:·· 为esc键盘下的

# b=10; b=`expr $b + 1` ===> 11 (实现了变量的自增1)

2. 运用 $[]

# echo $[ 10 + 10 ] ===> 20

# a=$[ 10 % 1];  echo a ===> 1

# b=10;  b=$[ $b + 1 ];echo b ===> 11 (实现了变量的自增1)

变量的自增操作还可以这样实现:

# c=100
# let c+=1 ===> 101

[] 表达式

[root@localhost ~]# [ 1 -eq 1 ] && echo 'ok'
ok

[root@localhost ~]# [ 2 < 1 ] && echo 'ok'
-bash: 2: No such file or directory

[root@localhost ~]# [ 2 \< 1 ] && echo 'ok'

[root@localhost ~]# [ 2 -gt 1 -a 3 -lt 4 ] && echo 'ok'

ok

[root@localhost ~]# [ 2 -gt 1 && 3 -lt 4 ] && echo 'ok'
-bash: [: missing `]'

注意:在[] 表达式中,常见的>,<需要加转义字符,表示字符串大小比较,以acill码 位置作为比较。 不直接支持<>运算符,还有逻辑运算符|| && 它需要用-a[and] –o[or]表示


[[]] 表达式

[root@localhost ~]# [ 1 -eq 1 ] && echo 'ok'
ok

[root@localhost ~]$ [[ 2 < 3 ]] && echo 'ok'
ok
[root@localhost ~]$ [[ 2 < 3 && 4 > 5 ]] && echo 'ok'
ok

<span style="color:#808000;">注意:[[]] 运算符只是[]运算符的扩充。能够支持<,>符号运算不需要转义符,它还是以字符串比较大小。里面支持逻辑运算符:|| && </span>


expr

求表达式变量的值。  保证 参数与运算符号中间有空格隔开

也可以使用  $(()) 将表达式放在括号中,即可达到运算的功能。

let

let 是 bash 内建的整数运算

双括号用法
语法:

((表达式1,表达式2…))

特点:

1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。

2、在双括号结构中,所有变量可以不加入:“$”符号前缀。

3、双括号可以进行逻辑运算,四则运算

4、双括号结构 扩展了for,while,if条件测试运算

5、支持多个表达式运算,各个表达式之间用“,”分开
 


例子:
a=1;
b=2;
c=3;

((a=a+1));
echo $a;

a=$((a+1,b++,c++));
echo $a,$b,$c

结果
2
3,3,4

双括号结构之间支持多个表达式,然后加减乘除等c语言常用运算符都支持。如果双括号带:$,将获得表达式值,赋值给左边变量。


有了双括号运算符:[[  ]], [   ],,以及let,expr 都可以抛到一边了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell linux