2016-02-27 18 views
0

這是一個隨機數發生器,後跟一個清除計時器,然後嘗試輸入您看到的數字。我似乎無法設置randNum變量和輸入之間的比較。我嘗試設置爲輸入的定義值,以及和仍然收到錯誤「命令未找到」檢查輸入VS randNum變量當用於此目的時輸入與變量比較不起作用?

n=$RANDOM$RANDOM$RANDOM; let "n %= 10000000000"; 
echo $n 

for i in {5..1}; do echo $i; sleep 1; tput cuu1; tput el; done 
tput cuu1; tput el 

echo "what was that number?" 
#read input 
input=999999999 
if [$input == $n] 
then 
echo "you are correct" 
else 
echo "you are incorrect" 
fi 

回答

0

殼需要圍繞括號[]空間(替換語法對於test命令),你應該更好地利用-eq代替==的數字比較:

if [ $input -eq $n ] 
+0

哇,我簡直跑當量爲20分鐘,不斷嘗試新東西來實現我我的括號內沒有空格....謝謝 – user3485895

+0

我會補充說,如果從標準輸入或其他地方讀取「輸入」,它應該用雙引號括起來,以避免運行時錯誤。像這樣: if [「$ input」-eq $ n] –

0

如果使用算術比較,而不是老test命令(又名[ )那麼你可以避免這些問題。這裏空間括號內是不太重要:

if ((input == n)) 

注意,領先$不需要(並使用它會導致問題)