今天在用shell脚本写斐波那契数列计算时,一直不停的报错,主要原因是因为shell脚本实在太不智能,在进行数组运算时需要写大量的符号,很容易混淆,所以稍微总结一下数组元素的计算。

首先,有几种情况:

1 在将一个数学运算结果赋值给某普通变量时:

(1) let var=算术表达式 

(2) var=$[算术表达式] 

(3) var=$((算术表达式)) 

(4) var=$(expr arg1 arg2 arg3 ...) 


2 在将一个数学运算结果赋值给某数组元素时:

(1)let arr[$i]=arr[$[$i+1]]+arr[$[$i+2]];   

(2)arr[$i]=$[arr[$[$i+1]]+arr[$[$i+2]]];  /*此种情况在vim环境下,中括号会出现红色闪烁,似乎是报错了,实则非也,放心运行吧!  */


(3)arr[$i]=$((arr[$[$i+1]]+arr[$[$i+2]]));



显而易见,第一种是最简便的写法。不过当用到数组元素的计算时,依然容易混淆,还是熟能生巧咯 ^_^