jsnjzlw 发表于 2018-8-25 10:03:50

shell-5-算数运算(算数展开‘(())’双括号语法)

  在$(( ))语法中,shell 提供了完整的算数运算能力,而且使用与c相同运算符与优先级。
  语法:
  ((表达式1,表达式2…))
  特点:
  1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。
  2、在双括号结构中,所有变量可以不加入:“$”符号前缀。
  3、双括号可以进行逻辑运算,四则运算
  4、双括号结构 扩展了for,while,if条件测试运算
  5、支持多个表达式运算,各个表达式之间用“,”分开
  参考这篇文章
  http://www.cnblogs.com/chengmo/archive/2010/10/19/1855577.html
  算数运算符表
  运算符               意义                        顺序         优先级
  ++ --         增加或减少,可前置或后置      左至右         高排至低排
  + - ! ~         一元的的正负号,逻辑位与取反    右至左
  * / %         乘法,除法,取余                左至右
  + -             加法,减法                      左至右
  >         向左移位,向右移位            左至右
  <>=       小于 小于等于,大于 大于等于 左至右
  == !=         相等,不等                     左至右
  &|            位的AND,位的OR       左至右
  && ||         逻辑的AND,逻辑的O
  ? :        条件表达式          右至左
  = += -+ /=
  %= &= |=
  = ^=      赋值运算符                   右至左
  关系运算符
  <>= == !=产生数字结果,1表示为真,0表示为假,例如
  # echo $((1==1))
  1
  # echo $((1!=1))
  0
  逻辑运算符
  && 逻辑与 || 逻辑或 ,任何非零的值为真 1,相反则为假 0
  # echo $(( (1==1) || (1==0) ))      # 1 或 0 为 1
  1
  # echo $(( (1==1) && (1==0) ))      # 1 与 0 为 0
  0
  赋值运算符
  # i=1;echo &quot;$((i++)) $i&quot;            #i++后置式,变量最后+1
  1 2
  # i=1;echo &quot;$((++i)) $i&quot;            #++i前置试,变量先+1
  2 2

页: [1]
查看完整版本: shell-5-算数运算(算数展开‘(())’双括号语法)