2016-04-14 62 views
-1

我正在寫代碼,我必須要求用戶輸入三位數字的輸入,然後按降序排列,但sort -r不起作用。Bash腳本降序

#!/bin/bash 
echo "Enter 3 numbers with space between" 
read num1 num2 num3 | sort -r 
echo "$num1 $num2 $num3" 
+0

當問題 聲明僅僅是「它不起作用」時,很難提供解決方案。請編輯您的 問題,以更全面地描述您的 預期會發生什麼,以及與實際的 結果有何不同。請參閱[問]提示什麼使得一個好的 解釋。 –

+0

我除了打印結果由用戶輸入的高值到低值之外。例如,如果用戶輸入472我希望它打印742.但是在輸入數字後,它仍然按照我輸入的順序打印。 –

+0

這個信息應該是**問題本身**的一部分,而不是評論。 [edir]你發佈。 – Tsyvarev

回答

1

read只讀取變量的值。它不打印任何東西。所以sort不會在標準輸入上得到任何東西。

我想你想:

read A B C 
echo "$A\n$B\n$C\n" | sort -rn 

說明:

  1. 你讀出的值分爲3個變量ABC
  2. 您排序打印出來
  3. 你他們以相反的順序。請注意0​​需要做數字排序。

另請注意,read A B C的要求是數字以空格分隔。

+1

非常感謝你,我正在尋找的東西。 –