0%

练习1-计算器

练习1-计算器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@vm-101 ~]# cat jisuanqi.sh
#!/bin/bash

num1=4
num2=2

echo $[ $num1 + $num2 ]
echo $[ $num1 - $num2 ]
echo $[ $num1 * $num2 ]
echo $[ $num1 / $num2 ]
exit 0 # 好习惯,别忘记了

[root@vm-101 ~]# bash jisuanqi.sh
6
2
8
2

这里是在脚本里面写死了两个数值。太不灵活了。我们稍微修改下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@vm-101 ~]# cat jisuanqi.sh
#!/bin/bash

num1=$1 # $1: 第1个位置参数
num2=$2 # $2: 第2个位置参数

echo $[ $num1 + $num2 ]
echo $[ $num1 - $num2 ]
echo $[ $num1 * $num2 ]
echo $[ $num1 / $num2 ]
exit 0 # 好习惯,别忘记了

[root@vm-101 ~]# bash jisuanqi.sh 4 2 # 4是第1个位置参数; 2是第2个位置参数
6
2
8
2

位置参数:

就是给脚本传的一些列参数。$1 $2 $3 $4 ...

$@ $* 是所有位置参数的数组,但是有点点细微的区别。我习惯用$@

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
[root@vm-101 ~]# cat test.sh
#!/bin/bash

echo$@
echo ”$*“

for i in "$@"
do
echo $i
done

for i in "$*"
do
echo $i
done
exit 0 # 好习惯,别忘记了

[root@vm-101 ~]# bash test.sh 11 22 33 44
“11 22 33 44”
”11 22 33 44“
11
22
33
44
11 22 33 44

做一个交互式的计算器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@vm-101 ~]# cat jisuanqi2.sh
#!/bin/bash
#
# 这是一个计算器,很简单。这段只是注释。只是为了说明这个脚本的作用,用途,以及作者信息,联系方式等。
# 这也是一个好习惯。
#
read -p "输入第一个数字:" num1 # 一个新的命令read命令。从交互式读入一个值,并赋给后面的变量。
read -p "输入一个操作符:" op
read -p "输入第二个数字:" num2

echo $[ $num1 $op $num2 ]
exit 0

[root@vm-101 ~]# bash jisuanqi2.sh
输入第一个数字:3
输入一个操作符:*
输入第二个数字:2
6
[root@vm-101 ~]# bash jisuanqi2.sh
输入第一个数字:4
输入一个操作符:/
输入第二个数字:2
2

但是这样还是有点麻烦,不够灵活

更牛逼的计算器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@vm-101 ~]# cat jisuanqi3.sh
#!/bin/bash

# 偷懒,注释

read -p "输入你的计算内容:" jisuan

echo $[ $jisuan ]

exit 0

[root@vm-101 ~]# bash jisuanqi3.sh
输入你的计算内容:1 + 2 + 3
6
[root@vm-101 ~]# bash jisuanqi3.sh
输入你的计算内容:1 * 3 * 5
15
[root@vm-101 ~]# bash jisuanqi3.sh
输入你的计算内容:100 % 3 * 5
5