tongyi007 发表于 2018-8-25 09:59:21

小苏的Shell编程笔记之三--数组和算术运算

  . 数组变量
  数组就不做太多的介绍了,当处理大量的数据时,使用数组非常灵活方便
  例子:echo ${name}
  这个例子可以输出索引号为2的数组元素值,其中大括号确保在解析时,将name视作一个变量名
  例如,下面的程序创建了两个数组,name 和 score ,name数组中包含了学生名单,score数组保存了对应学生的成绩。使用for 循环,显示学生成绩列表。
  #!/bin/bash
  name=(“张三” ”李四” ”王五” ”马六” ”王小名”)   //注意,这里是括号
  score=(65 78 83 82 90)
  for i in 0 1 2 3 4
  do
  echo “${name[$i]}的考试成绩为:${score[$i]}”
  done
  当然,也可以通过其他方式给数组元素赋值,比如name=”张三”,这样也可以赋值。
  2. 数组元素的个数
  对数组元素进行输出时,通常需要预先知道数组元素的个数。下面的格式就可以返回数组中元素的个数。
  ${#name
[*]}
  3. 算术运算
  bash Shell中没有内置的算术运算,不能直接做加、减、乘、除等算术运算。
  如果想完成简单的整数算术运算,可以使用expr命令或者let命令,对于浮点运算,可以使用awk或bc。
  expr命令
  expr命令是一个表达式处理指令,支持加 减 乘 除 百分五种算术运算符。注意:运算符前后要留有空格,并且只能进行整数运算。例子
  a=4 ;b=10
  x=`expr $a / $b`
  echo $x
  4. 浮点运算
  如果需要完成更复杂的运算,可以使用bc,awk等命令。例如使用awk命令来计算3.3乘以4以及3.3除以4的结果。如下所示
  product=`awk `BEGIN {x=3.3;y=4;printf “%.2f%.4f ” ,x*y,x/y;}``
  echo $product
  printf “%.2f%.4f ” ,x*y,x/y 表示按浮点数输出变量x和变量y的乘积并保留两位小数,输出x和y的商,且保留4位小数。

页: [1]
查看完整版本: 小苏的Shell编程笔记之三--数组和算术运算