- 7
- 0
- 约3.01万字
- 约 4页
- 2017-07-30 发布于河南
- 举报
linux与AIX中简单求与公式
求和的方法
一 while循环
$ cat while
sum=0
i=1
while [[ $i -le 100 ]]
do
sum=$(expr $sum + $i )
i=$(expr $i + 1 )
done
echo 1+2+3+....+100=$sum
$ ksh while
1+2+3+....+100=5050
评: 1 引用变量注意后空格
2 不能用号用-le代替,不同c语言
二 for循环
$ cat for1
sum=0
for i in 1 2 3 4
do
sum=$(expr $sum + $i )
done
echo 1+2+..+4=$sum
$ ksh for1
1+2+..+4=10
修改
$ cat for1
sum=0
for i in [ 1 - 4 ]
do
sum=$(expr $sum + $i )
done
echo 1+2+..+4=$sum
$ ksh for1
expr: 0402-046 A specified operator requires numeric parameters.
expr: 0402-050 Syntax error.
expr: 0402-050 Syntax error.
expr: 0402-050 Syntax error.
expr: 0402-050 Syntax error.
1+2+..+4=
为什么?集中在多个变量中
修改
$ cat for
sum=0
for i in 1
do
if [[ $i -le 100 ]]
then
sum=$(expr $sum + $i )
i=$(expr $i + 1 )
else
exit
fi
done
echo 1+2+3+....+100=$sum
$ ksh for
1+2+3+....+100=1
修改
$ cat for
sum=0
for i in 1
do
if [[ $i -le 100 ]]
then
sum=$(expr $sum + $i )
i=$(expr $i + 1 )
return i
else
exit
fi
done
echo 1+2+3+....+100=$sum
$ ksh for
$
三 until
$ cat until
sum=0
i=1
until [[ $i -gt 100 ]]
do
sum=$(expr $sum + $i )
i=$(expr $i + 1 )
done
echo 1+2+3+....+100=$sum
$ ksh until
1+2+3+....+100=5050
四 扩展
$ cat sum
echo please input the first number n1 :
read n1
echo please input the second number n2 :
read n2
sum=0
while [[ $n1 -le $n2 ]]
do
sum=$(expr $sum + $n1 )
n1=$(expr $n1 + 1 )
done
echo n1+....+n2=$sum
$ ksh sum
ksh: sum: 0403-006 Execute permission denied.
$ chmod +x sum
$ sum
^Z[2] + Stopped (SIGTSTP) sum
$ ksh sum
ksh: sum: 0403-006 Execute permission denied.
为什么可执行权限会被否认?ksh?
原创力文档

文档评论(0)