美文网首页
Shell 数组与数学运算

Shell 数组与数学运算

作者: lujg12 | 来源:发表于2018-04-21 15:42 被阅读0次

    参考书籍 Linux shell 脚本攻略


    数组和关联数组

    • 数组分类
      • 普通数组:只能使用整数作为数组索引。
      • 关联数组:可以使用字符串作为数组索引。
    • 定义数组
      • 单行中使用一列值来定义:array_var=(1 2 3 4 5 6) #存储在以0为起始索引的连续位置上
      • 定义为一组 索引——值对
    array_var[0]="test1"
    array_var[1]="test2"
    echo ${array_var[0]}
    echo ${array_var[*]}
    echo ${array_var[@]}
    echo ${#array_var[*]}
    
    • 关联数组
    declare -A ass_array #声明关联数组
    ass_array=([index1]=val1 [index2]=val2) #内嵌索引-值列表法添加元素
    ass_array[index1]=val1 #使用独立的索引-值进行赋值
    

    数学运算

    赋值:用普通的变量赋值方法定义数字,不过存储为字符串,需要用一些方法使它能够像数字一样进行处理。

    • let 命令可直接执行基本的算术操作。使用let时,变量名前不需要添加 $,如
    #!/bin/bash
    no1=4
    no2=5
    let result=no1+no2
    let no1++
    let no2--
    let no1+=6
    let no2-=6
    echo $result
    
    • 其它方法
      1. 操作符 [],使用方法和let命令类似,[]中也可以使用$前缀:
      result=$[ no1 + no2 ]
      result=$[ $no1 + 5 ]
      2. 操作符(()),变量名前要加上 $
      result=$(( no1 + 50 ))
      3. expr命令
      result=$(expr $no1 + 5)
      :以上方法只能用于整数运算,不支持浮点数。
    • bc是一个用于数学计算的高级工具,可借助它执行浮点数运算并应用一些高级函数。
      1. 设置小数精度:例子中参数 scale=2将小数位个数设置为2,因此将输出含两个小数位的数值。
      2. 进制转换。
      3. 计算平方以及平方根。
      例:
    result=`echo "$no1 * 1.5" | bc`
    echo "scale=2;3/8" | bc
    no=100
    echo "obase=2;$no" | bc
    no=1100100
    echo "obase-10;ibase=2;$no" | bc
    echo "sqrt(100)" | bc
    echo "10^10" | bc
    

    相关文章

      网友评论

          本文标题:Shell 数组与数学运算

          本文链接:https://www.haomeiwen.com/subject/fjexlftx.html