shell 实现三个数大小排序

想到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

大笑


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值