-
Notifications
You must be signed in to change notification settings - Fork 0
/
数值计算
99 lines (74 loc) · 1.21 KB
/
数值计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
整数运算
范例:对某个数加 1
$ i=0;
$ ((i++))
$ echo $i
1
$ let i++
$ echo $i
2
$ expr $i + 1 #注意空格
3
$ echo $i
2
$ echo $i 1 | awk '{printf $1+$2}'
3
从1加到某个数
#!/bin/bash
#calc.sh
i=0;
n=0;
while [ $i -lt 100 ]
do
((i++))
n=` expr $n + $i `
done
echo $n
替换i++部分
let i++;
i=$(expr $i + 1)
i=$(echo $i+1|bc)
i=$(echo "$i 1" | awk '{printf $1+$2;}')
求余数
$ expr 5 % 2
1
$ let i=5%2
$ echo $i
1
$ echo 5 % 2 | bc
1
$ ((i=5%2))
$ echo $i
1
求幂
$ expr 5 % 2
1
$ let i=5%2
$ echo $i
1
$ echo 5 % 2 | bc
1
$ ((i=5%2))
$ echo $i
1
浮点运算
let 和 expr 都无法进行浮点运算,但是 bc 和 awk 可以。
whwu@master:~/script> echo "100 13" | awk '{printf("%.3f\n",$1/$2)}' #awk 在控制小数位数的时候非常灵活,仅仅通过 printf 的格式控制就可以实现
7.692
whwu@master:~/script> echo "scale=3; 1/13" | bc #bc 在进行浮点运算的时候需要指定小数点位数,否则默认为 0
.076
expr命令
whwu@master:~/script/test> cat expr_example.sh
#!/bin/bash
i=1
while [ "$i" -le 5 ]
do
echo i is $i
i=`expr $i + 1`
done
whwu@master:~/script/test> ./expr_example.sh
i is 1
i is 2
i is 3
i is 4
i is 5