shell中变量自增的计算方法

来源:互联网 发布:箭牌官方旗舰店 知乎 编辑:程序博客网 时间:2024/05/16 06:56

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

有了双括号运算符:[[  ]], [   ],,以及let,expr 都可以抛到一边了。



0 0