zoukankan      html  css  js  c++  java
  • shell 运算符

    shell 运算符

    $[]等同于$(())   # $[]表示形式告诉shell求中括号中的表达式的值
    ~var            # 按位取反运算符,把var中所有的二进制为1的变为0,为0的变为1
    var<<str       # 左移运算符,把var中的二进制位向左移动str位,忽略最左端移出的各位,最右端的各位上补上0值,每做一次按位左移就有var乘2
    var>>str        # 右移运算符,把var中所有的二进制位向右移动str位,忽略最右移出的各位,最左的各位上补0,每次做一次右移就有实现var除以2
    var&str         # 与比较运算符,var和str对应位,对于每个二进制来说,如果二都为1,结果为1.否则为0
    var^str         # 异或运算符,比较var和str对应位,对于二进制来说如果二者互补,结果为1,否则为0
    var|str         # 或运算符,比较var和str的对应位,对于每个二进制来说,如二都该位有一个1或都是1,结果为1,否则为0

    运算符优先级

    级别      运算符                                  说明
    1      =,+=,-=,/=,%=,*=,&=,^=,|=,<<=,>>=      # 赋值运算符
    2         ||                                  # 逻辑或 前面不成功执行
    3         &&                                  # 逻辑与 前面成功后执行
    4         |                                   # 按位或
    5         ^                                   # 按位异或
    6         &                                   # 按位与
    7         ==,!=                               # 等于/不等于
    8         <=,>=,<,>                           # 小于或等于/大于或等于/小于/大于 
    9        <<,>>                               # 按位左移/按位右移 (无转意符号)
    10        +,-                                 # 加减
    11        *,/,%                               # 乘,除,取余
    12        ! ,~                                # 逻辑非,按位取反或补码
    13        -,+                                 # 正负

    数学运算

      数据运算符

    		$(( ))        # 整数运算
    		+ - * / **    # 分別为 "加、減、乘、除、密运算"
    		& | ^ !       # 分別为 "AND、OR、XOR、NOT" 运算
    		%             # 余数运算
    

      let 运算方式

                let # 运算  
                let x=16/4
                let x=5**5

      expr 运算

    	expr 14 % 9                    # 整数运算
    	SUM=`expr 2 * 3`              # 乘后结果赋值给变量
    	LOOP=`expr $LOOP + 1`          # 增量计数(加循环即可) LOOP=0
    	expr length "bkeep zbb"        # 计算字串长度
    	expr substr "bkeep zbb" 4 9    # 抓取字串
    	expr index "bkeep zbb" e       # 抓取第一个字符数字串出现的位置
    	expr 30 / 3 / 2                # 运算符号有空格
    	expr bkeep.doc : '.*'          # 模式匹配(可以使用expr通过指定冒号选项计算字符串中字符数)
    	expr bkeep.doc : '(.*).doc'  # 在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名
    

      数值测试

    #如果试图计算非整数,则会返回错误
    rr=3.4
    expr $rr + 1
    expr: non-numeric argument
    rr=5
    expr $rr + 1
    6

      bc 运算

    echo "m^n"|bc            # 次方计算
    seq -s '+' 1000 |bc      # 从1加到1000
    seq 1 1000 |tr "
    " "+"|sed 's/+$/
    /'|bc   # 从1加到1000
    

      

  • 相关阅读:
    Asp.net使用DevExpress的某些控件不能操作ViewState的解决方案
    关于 vue 循环组件,组件内有根据要求请求select下拉列表,组件内还有自身组件,select下拉列表无法正确获取的问题解决
    Vue+axios请求本地json
    关于vuevideoplayer 实现跳转到特定位置并自动播放
    VueQuillEditor回显不显示空格的处理办法
    elementui 的CascaderPanel级联面板类型 懒加载 回显
    elementui 中的文本域的autosize的意思
    解决 [Element Warn][Form]model is required for validate to work!
    初涉simulink
    arm学习计划
  • 原文地址:https://www.cnblogs.com/sharesdk/p/8696267.html
Copyright © 2011-2022 走看看