(一)写如下所示数列
@H_502_4@
@H_502_4@
[root@localhost ding1]# bash 5.sh@H_502_4@
2/1@H_502_4@
3/2@H_502_4@
5/3@H_502_4@
8/5@H_502_4@
13/8@H_502_4@
21/13@H_502_4@
34/21@H_502_4@
55/34@H_502_4@
89/55@H_502_4@
144/89@H_502_4@
233/144@H_502_4@
@H_502_4@
#!/bin/bash >aa >bb echo12|xargs-n1>aa foriin`seq20` do a=`cataa|sed-n''$i'p'` b=`cataa|tail-1` echo$(($a+$b))>>aa c=`cataa|sed-n''$(($i+1))'p'` echo$c/$a>>bb done catbb
@H_502_4@
计算结果如下,用awk 计算@H_502_4@
[root@localhostding1]#bash5.sh|awk-F'/''{a+=$1/$2;printa}'
2@H_502_4@
3.5@H_502_4@
5.16667@H_502_4@
6.76667@H_502_4@
8.39167@H_502_4@
10.0071@H_502_4@
11.6261@H_502_4@
13.2437@H_502_4@
14.8619@H_502_4@
16.4799@H_502_4@
18.098@H_502_4@
19.716@H_502_4@
21.334@H_502_4@
22.9521@H_502_4@
24.5701@H_502_4@
26.1881@H_502_4@
27.8062@H_502_4@
29.4242@H_502_4@
31.0422@H_502_4@
32.6603@H_502_4@
[root@localhost ding1]#@H_502_4@
上面的代码是输出文本,略微有点复杂,我补充第二中方法:@H_502_4@
#!/bin/bash a=1#定义一个变量a和b b=2 foriin`seq20` do echo$b/$a#shell解析的时候是从上往下一步步来的,所以顺序是非常重要的。 c=$((a+b))a=$b和b=$c不能颠倒过来 a=$b b=$c done 第一次循环:2/1c=3a=2b=3 第二次循环:3/2c=5a=3b=5 第三次循环:5/3c=8a=5b=8 ........
@H_502_4@
如果打印一个这样的数列是不是也会了@H_502_4@
例如:@H_502_4@
1@H_502_4@
2@H_502_4@
3@H_502_4@
5@H_502_4@
8@H_502_4@
........@H_502_4@
#!/bin/bash a=1 b=2 echo1 foriin`seq20` do echo$b c=$((a+b)) a=$b b=$c done
@H_502_4@
[root@localhost ding1]# bash 6.sh@H_502_4@
1@H_502_4@
2@H_502_4@
3@H_502_4@
5@H_502_4@
8@H_502_4@
13@H_502_4@
21@H_502_4@