2014-11-25 72 views
0

我要求用戶輸入一個數字,如果數字大於2,那麼我想將字符串-n添加到該數字。這裏是我的代碼:添加一個字符串的數字變量

read -p "Enter a number " result_sort 
if [ $result_sort >2 ]; then 

    result_sort = $result_sort + " -n" 

fi 

echo "$result_sort" 

,我發現了錯誤:command not found

回答

1

您的代碼應該是這樣的:

read -p "Enter a number " result_sort 
if [ $result_sort -gt 2 ]; then 

    result_sort=$(echo "$result_sort -n") 

fi 

echo "$result_sort" 

有兩個錯誤:

  1. test實用程序([)您使用不接受<>具有更大和更小。這些字符是shell中的重定向字符(請參閱I/O Redirection)。即使$result_sort小於2,您在if子句中的語句始終爲真。您正在將該命令[ $result_sort ]的結果寫入名爲2的文件。

  2. 兩個字符串的連接不能以你的方式完成。

1

試試這個

result_sort=`echo "${result_sort} -n"` 

應該有result_sort和 「=」 號之間沒有空格。在你的情況下,由於空間的原因,它將result_sort標識爲命令並試圖解釋它。

1

您可以在BASH做到這一點:

read -p "Enter a number " result_sort 

((result_sort>2)) && result_sort+=" -n" 
1

結果可以通過連接變量的字符串值簡單地完成:

read -p "Enter a number " result_sort 

[ "$result_sort" > 2 ] && 
result_sort="${result_sort}-n" 

echo "$result_sort" 

護具保護變量可以防止歧義。同樣使用anubhava給出的算術比較可以防止用戶輸入數字以外的內容。