- 论坛徽章:
- 1
|
- #!/bin/bash
- f()#定义求斐波那契数列的函数
- {
- local i=$1 #$1是函数接受的第一个参数,以此类推 $2第二个。。。。
- if [ $i -eq 1 ] || [ $i -eq 2 ] #判断是否传入的参数 是否等于1或者等于2,如果是直接就输出1
- then
- echo $i;
- else
- ((i--)) #i自减1,
- sum1=$(f $i) #相当于 f(i-1)
- ((i--)) #i再自减
- sum2=$(f $i) #相当于f(i-2)
- ((sum=sum1 + sum2)) #相当于sum = f(i-2)+f(i-1)
- echo $sum #最后输出jieguo
- fi
- }
- n=$(cat filename) # 从filenam中读取选项n,filename内容 10
- >resfile #做一个重定向,什么也没有重定向到文件resfile,目的清空这个文件,一面影响到最后的结果
- for((j=1;j<=$n;j++)) #循环1-n 每次把调用函数的结果输入到resfile
- do
- res=$(f $j) #保存函数执行的结果到变量res
- echo -n "$res " >>resfile #-n 选项表示不换行输出结果到resfile
- done
复制代码 |
|