参考书籍 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
网友评论