0

我是 linux 中 shell 脚本的新手,我希望能够从用户那里获取任何 3 个数字并按升序显示它们。我设法按降序而不是升序得到它。

谁能告诉我必须对代码进行哪些更改?另外,如果我这样做效率低下,请告诉我。我正在尝试尽可能多地学习。

谢谢!

#!/bin/bash                                                                                                                                                                                                                                                                   
#Accepts 3 numbers and displays the number in ascending order                                                                                                                                                                                                                 

echo "Enter the first number"
read num1
echo "Enter the second number"
read num2
echo "Enter the third number"
read num3

allNumbers="$num1 $num2 $num3"

echo $allNumbers|tr " " "\n"|sort|tr "\n" " "                                                                                                                                                                                                                                
4

2 回答 2

3

对于数字排序,您应该使用sort -n. 对于下降,使用sort -nr

于 2013-03-12T06:14:28.623 回答
1
echo $(printf "%s\n" $num1 $num2 $num3 | sort -n)

printf命令将输出分成 3 行;sort -n按数字升序排序;将echo $(...)sort 的输出展平到单行上。

于 2013-03-12T06:19:56.973 回答