刚学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
这中方法只能应用于 -- 其余的没法执行。
时间: 2024-10-15 12:04:46