2016-04-27 7 views
0

に分割し、このコードを持って、他の場合:私はbashで学校の割り当てを行っていますBASH

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

を割り当て、我々は、キーボードからの読み取り2つの数を分割し、最初の番号があるかどうかを確認する必要があると述べています数字より大きい。

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

チャールズ・ダフィー(Charles Duffy)の迅速な回答ありがとうございました。 :) – Toftemann

関連する問題