想到shell跟C 有那么多不同,之前想到用shell 怎么实现C里面三个数的大小排序呢?

今天想了下,实练了下,还是不困难,虽然算法那么普通;不过有想法然后能根据自己学的东西把想法实现,还是蛮有意思的。

1 #!/bin/bash
2
3 tmp=0
4 echo "input the three number"
5 read -p "1:" a
6 read -p "2:" b
7 read -p "3:" c
8 if [ $a -gt $b ]
9 then
10 tmp=$a
11 a=$b
12 b=$tmp
13 fi
14 if [ $a -gt $c ]
15 then
16 tmp=$a
17 a=$c
18 c=$tmp
19 fi
20 if [ $b -gt $c ]
21 then
22 tmp=$b
23 b=$c
24 c=$tmp
25 fi
26 echo "the sorted number is : $a $b $c"
~

自测:

Loong:/home/yee# sh -x compare.sh 
+ tmp=0
+ echo 'input the three number'
input the three number
+ read -p 1: a
1:23
+ read -p 2: b
2:43
+ read -p 3: c
3:35
+ '[' 23 -gt 43 ']'
+ '[' 23 -gt 35 ']'
+ '[' 43 -gt 35 ']'
+ tmp=43
+ b=35
+ c=43
+ echo 'the sorted number is : 23 35 43'
the sorted number is : 23 35 43
Loong:/home/yee# sh -x compare.sh
+ tmp=0
+ echo 'input the three number'
input the three number
+ read -p 1: a
1:12
+ read -p 2: b
2:13
+ read -p 3: c
3:16
+ '[' 12 -gt 13 ']'
+ '[' 12 -gt 16 ']'
+ '[' 13 -gt 16 ']'
+ echo 'the sorted number is : 12 13 16'
the sorted number is : 12 13 16
Loong:/home/yee# sh -x compare.sh
+ tmp=0
+ echo 'input the three number'
input the three number
+ read -p 1: a
1:54
+ read -p 2: b
2:43
+ read -p 3: c
3:32
+ '[' 54 -gt 43 ']'
+ tmp=54
+ a=43
+ b=54
+ '[' 43 -gt 32 ']'
+ tmp=43
+ a=32
+ c=43
+ '[' 54 -gt 43 ']'
+ tmp=54
+ b=43
+ c=54
+ echo 'the sorted number is : 32 43 54'
the sorted number is : 32 43 54