Shell脚本实战10-比较整数大小

1. 需求

开发Shell脚本,分别实现以脚本传参和read读入的方式比较两个整数的大小。用条件表达式(禁止用if)进行判断并以屏幕输出的方式提醒用户比较的结构。

注意:一共是开发两个脚本。在用脚本传参和read读入的方式实现时,需要对变量是否为数字及传参个数是否正确给与提示。

2. 实现脚本

2.1. 参考答案1:采用read方法

脚本内容如下:

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
#!/bin/bash
read -p "Pls input two num:" a b
#NO.1
[ -z "$a" ] || [ -z "$b" ] && {
echo "Pls input two num again."
exit 1
}
#NO.2
expr $a +10 &> /dev/null
RETVAL1=$?
expr $b+10 &> /dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
echo "Pls input two num agian."
exit 2
}
#NO.3
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
#NO.4
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
#NO.5
[ $a -gt $b ] && {
echo "$a > $b"
}

2.2. 参考答案2:通过命令行传参的方法实现

脚本内容如下:

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
#!/bin/bash
a=$1
b=$2
#NO.1
[ $# -ne 2 ] && {
echo "USAGE:$0 NUM1 NUM2"
exit 1
}
#NO.2
expr $a + 10 &> /dev/null
RETVAL1=$?
expr $b + 10 &> /dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
echo "Pls input weo num agian."
exit 2
}
#NO.3
[ $a -lt $b ] && {
echo "$a < $b"
exit 0
}
#NO.4
[ $a -eq $b ] && {
echo "$a = $b"
exit 0
}
#NO.5
[ $a -gt $b ] && {
echo "$a > $b"
}

0%