2017-05-23 16 views
0

私は学校プロジェクトのためにBASHで電卓を作っています。ただし、乗算コードは機能しません。私の計算機BASHスクリプトで乗算を修正する方法

#!/bin/bash 
     input="yes" 
     while [[ $input = "yes" ]] 
     do 

    #type in the number that correponds to math operation you want to do 

    PS3="Press 1 for Addition, 2 for subtraction, 3 for multiplication 
    4 for division: " 
    select math in Addition Subtraction Multiplication Division 
    do 
    case "$math" in 
    Addition) 
    #enter numbers 
     echo "Enter first no:" 
     read num1 
     echo "Enter second no:" 
     read num2 
     result=`expr $num1 + $num2` 
     echo Answer: $result 
     break 
    ;; 
    #enter numbers 
    Subtraction) 
     echo "Enter first no:" 
     read num1 
     echo "Enter second no:" 
     read num2 
     result=`expr $num1 - $num2` 
     echo Answer: $result 
     break 
    ;; 
    #thing that needs to be fixed 
    Multiplication) 
     echo "Enter first no:" 
     read num1 
     echo "Enter second no:" 
     read num2 
     $result= expr $num1 * $num2 
     echo Answer: $result 
     break 
    ;; 
    #enter numbers 
    Division) 
     echo "Enter first no:" 
     read num1 
     echo "Enter second no:" 
     read num2 
     result=$(expr "scale=2; $num1/$num2" | bc) 
     echo Answer = $result 
     break 
     ;; 
     *) 
     break 
     ;; 
     esac 
     done 
     done 
+0

を使用exprを使用。 – chepner

+0

期待される出力とは何かを書いて、人々があなたを助けてくれるようにするためのエラーとは何ですか? [here](https://stackoverflow.com/help/how-to-ask)を参照してください。 –

答えて

2

脱出しない限り、シェルは、カレントディレクトリ(PWD)内のすべてのファイル、 "globbing" と呼ばれるプロセスに*を拡大:

$ expr 2 * 2 
expr: syntax error 
$ expr 2 \* 2 
4 

幸運割り当てて!完了したら、reviewのコードを送信して詳細を確認することをおすすめします。

2

の代わりにちょうどあなたがあなたのコードを確認するshellcheck.netを使用する必要がありますarithmetic expansion

result=$((num1 * num2)) 
関連する問題