编写一个Shell脚本,它能显示下面序列前10个数字:
0,1,1,2,3,5,8,13,…
分析
从数字序列我们可以得到该数列的通项公式为:
实验步骤
(A)用vi创建一个文件;
(B)编辑脚本的内容;
(1) 给脚本指定解释器;
(2) 定义一个变量i并赋初值0;
(3) 定义一个while循环结构,条件表达式为判断i值是否小于9,i为其计数器;
(4) 在循环结构内分别是三个if分支结构,分别判断i=0、i=1和i>1的情况;
(5) 如果i=0,输出i,并给 赋值( 用变量n代替);
(6) 如果i=1,输出i,并给 赋值( 用变量m代替);
(7) 如果i>=1,计算m+n(即 + )的值赋给 ( 用变量v代替),输出v,
那么 和 的新值(也就是n和m的值)为m和v。
(C)给文件增加执行权限;
(D)执行该脚本。
#!/bin/sh
#定义一个变量i并赋初值0;
i=0
#定义一个while循环结构,条件表达式为判断i值是否小于9,i为其计数器;
while test $i -lt 9
do
# 在循环结构内分别是三个if分支结构,分别判断i=0、i=1和i>1的情况;
# 如果i=0,输出i,并给 赋值( 用变量n代替);
if test $i -lt 1;then
n=$i
echo $n
#如果i=1,输出i,并给 赋值( 用变量m代替);
elif test $i -eq 1;then
m=$i
echo $m
#如果i>=1,计算m+n(即 + )的值赋给 ( 用变量v代替),输出v,
elif test $i -gt 1;then
v=`expr $m + $n`
echo $v
fi
i=`expr $i + 1`
done
#定义一个变量i并赋初值0;
i=0
#定义一个while循环结构,条件表达式为判断i值是否小于9,i为其计数器;
while test $i -lt 9
do
# 在循环结构内分别是三个if分支结构,分别判断i=0、i=1和i>1的情况;
# 如果i=0,输出i,并给 赋值( 用变量n代替);
if test $i -lt 1;then
n=$i
echo $n
#如果i=1,输出i,并给 赋值( 用变量m代替);
elif test $i -eq 1;then
m=$i
echo $m
#如果i>=1,计算m+n(即 + )的值赋给 ( 用变量v代替),输出v,
elif test $i -gt 1;then
v=`expr $m + $n`
echo $v
fi
i=`expr $i + 1`
done
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-06-30
楼主写的很详细了。