(一)写如下所示数列
[root@localhost ding1]# bash 5.sh
2/1
3/2
5/3
8/5
13/8
21/13
34/21
55/34
89/55
144/89
233/144
shell代码如下:
- #!/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
计算结果如下,用awk 计算
- [root@localhostding1]#bash5.sh|awk-F'/''{a+=$1/$2;printa}'
2
3.5
5.16667
6.76667
8.39167
10.0071
11.6261
13.2437
14.8619
16.4799
18.098
19.716
21.334
22.9521
24.5701
26.1881
27.8062
29.4242
31.0422
32.6603
[root@localhost ding1]#
shell 代码如下:
- #!/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
- ........
如果打印一个这样的数列是不是也会了
例如:
1
2
3
5
8
........
shell 代码如下:
- #!/bin/bash
- a=1
- b=2
- echo1
- foriin`seq20`
- do
- echo$b
- c=$((a+b))
- a=$b
- b=$c
- done
输出如下:
[root@localhost ding1]# bash 6.sh
1
2
3
5
8
13
21