• 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

  • 相关阅读:
    Android NDK篇-C++虚函数、纯虚函数、完全纯虚函数与模板函数
    springboot项目构建docker image镜像
    LeetCode 斐波那契序列
    LFS学习系列2 — 总览
    【无标题】
    Linux-查询目录下包含的目录数或文件数
    详细了解JVM运行时内存
    工作22年后明白的22条职场道理
    /usr/bin/env: ‘python’: No such file or directory
    kafka基础原理
  • 原文地址:https://blog.csdn.net/mantangjojo/article/details/127803016