2016-04-27 59 views
0

我做在bash一所學校分配和得到這個代碼:如果其他除以BASH

if a < 0 
    a = a/b 
else 
    a = b/a 
fi 

分配說,我們需要劃分從鍵盤讀取的兩個號碼,並檢查第一個數字是大於數字0.

echo "Write two numbers, with a space, that need to be divided:" 
read a b 
    if a > 0 
    a = $a/$b 
    else 
    a = $b/$a 
fi 

echo "$a" 

我在做什麼錯在這裏?

+0

你不應該在'='周圍有空格,否則bash會嘗試執行'a'。 –

+0

http://shellcheck.net/會自動捕獲很多這些問題 –

+0

你真的必須在學校任務中​​使用'bash'嗎?在'perl'或'python'中實現它會容易得多。 –

回答

0

在bash中創建數學上下文使用(())。請注意,bash本身只支持整數數學 - 確保您不期望小數輸出(或使用小數輸入),並且如果此限制與您相關,請參閱BashFAQ #22

if ((a > 0)); then 
    a=$((a/b)) 
else 
    a=$((b/a)) 
fi 
+0

謝謝你的快速答案查爾斯達菲,那工作。 :) – Toftemann