刚学shell不知道怎么转换,现在明白了一点点 ,记录下
变成加法就好明白了
-
c=$[$c+5] let c=$c+5 #变量c等于C加上5后在赋值给自身 let c+=5 #就可以这样表示了 例如: 脚本代码如下 declare -i SUM=0 for((J=2;J<=100;J+=2));do let SUM+=$J echo $SUM done echo $SUM 执行结果如下: + declare -i SUM=0 +(( J=2)) #首先赋值J=2 +(( J<=100)) #J小于100就继续执行 + let SUM+=2 #计算SUM的值,SUM+=变量J,J此时等于2,变量SUM等于SUM加上2后在赋值给自身 + echo 2 2 #此时SUM等于2 +(( J+=2)) #现在J=2了,然后J+2后在往自身赋值,就变成4了 +(( J<=100)) #J小于100就继续执行 + let SUM+=4 #SUM经过上轮计算现在等于2,SUM+4后在往自身赋值就变成6了 + echo 6 6 #此时SUM等于6 +(( J+=2)) #现在J=4了,然后J+2后在往自身赋值,就变成6了 +(( J<=100)) #J小于100就继续执行 + let SUM+=6 #SUM经过上轮计算现在等于6,SUM+6后在往自身赋值就变成12了 + echo 12 12 #最终显示12
同样的 在+ - * / %都通用
关于++值问题
-
代码如下 declare -i SUM=0 for((J=2;J<=100;J++));do let SUM+=$J echo $SUM done echo $SUM 事例如下 + declare -i SUM=0 +(( J=2)) #首先赋值J=2 +(( J<=100)) #J小于100就继续执行 + let SUM+=2 #计算SUM的值,SUM+=变量J,J此时等于2,变量SUM等于SUM加上2后在赋值给自身 + echo 2 2 #此时SUM等于2 +(( J++)) #现在J=2了,然后J++后在往自身赋值,也就是往自身上加1,就变成3了 +(( J<=100)) #J小于100就继续执行 + let SUM+=3 #SUM经过上轮计算现在等于2,SUM+3后在往自身赋值就变成5了 + echo 5 5 #此时SUM等于5 +(( J++)) #现在J=3了,然后J++后在往自身赋值,也就是往自身上加1,就变成4了 +(( J<=100)) #J小于100就继续执行 + let SUM+=4 #SUM经过上轮计算现在等于2,SUM+4后在往自身赋值就变成9了 + echo 9 9 #此时SUM等于5 +(( J++)) #现在J=4了,然后J++后在往自身赋值,也就是往自身上加1,就变成5了 +(( J<=100)) #J小于100就继续执行 + let SUM+=5 #SUM经过上轮计算现在等于9,SUM+5后在往自身赋值就变成14了 + echo 14 14 #此时SUM等于14
这中方法只能应用于 -- 其余的没法执行。