• shell变量


    1.计算10的阶乘

    1. vim jiecheng.sh
    2. #!/bin/bash
    3. res=1
    4. for i in $@
    5. do
    6. res=$((res*i))
    7. done
    8. echo $res

    运行脚本计算10的阶乘

    source jiecheng.sh {1..10}


    2.12,-13的原码,补码和反码

    二进制的最高位为符号位。0为正数,1为负数

    正数的原码,补码,反码是一致的。它的补码和反码就是原码

    负数的原码,反码,补码不一致。

            原码-->反码:除了最高位的符号位,其他按位取反

            补码:在反码的基础上+1

    12:二进制 --- 0000 1100

               原码 --- 0000 1100

               反码 --- 0000 1100

               补码 --- 0000 1100

    -13:二进制 --- 0000 1101

                原码 --- 1000 1101

                反码 --- 1111 0010

                补码 --- 1111 0011

    3.计算 1+2的结果,并将值赋给变量data, 然后计算 data+10的值,赋值给data2(要求:分别使用(()), let, expr,bc和 $[]实现)

    (()):用于整数运算,在(())里面可以省略变量的$符号

    let:用于整数运算,可以执行多个表达式,变量的$符号不可省略

    expr:不止可以用于整数运算,使用expr时,运算符及用于计算的数字左右都至少有一个空格,否则报错;使用乘号,必须使用反斜线屏蔽其特定含义;使用expr做 计算,将一个未知的变量和一个已知的整数相加,看返回码是否为 0,如果为0就认为做加法的变量为整数,否则就不是整数。

    bc:可以计算小数,相当于Linux中的计算器

    $[]:用于整数运算

    1. ((data=1+2));echo $data ---- 将1+2的结果赋值给data
    2. 3
    3. ((data2=data+10));echo $data2 ---使用(())
    4. 13
    5. let data2=$data+10;echo $data2 --- 使用let
    6. 13
    7. data2=`expr $data + 10` ;echo $data2 --- 使用expr
    8. 13
    9. echo "`echo $data`+10" | bc --- 使用bc
    10. 13
    11. data2=$[data+10];echo $data2 --- 使用$[]
    12. 13

  • 相关阅读:
    【小程序源码】全新优化版趣味语句生成器
    华测视频RTK,AR实景导航
    cdh 6.3.2 离线部署
    七天进阶elasticsearch[one]
    【云手机】数据安全如何保障?
    【项目记录/vue移动端】仿京东到家登录页
    Java语言的过滤数据流
    代码随想录1刷—栈和队列篇
    Hadoop HA集群全是standBy解决办法
    Android入门第28天-ListView嵌套CheckBox在滚动时失去选中状态的问题
  • 原文地址:https://blog.csdn.net/mantangjojo/article/details/127803016