12

足し算、引き算、掛け算、割り算の基本的な電卓を作っています。

加算は機能しますが、乗算は機能しません。乗算しようとすると、「プログラムが正しく実行されませんでした」という応答が返されます。

$ ./calculator 4 + 5
9
$ ./calculator 4 * 5
You did not run the program correctly
Example: calculator 4 + 5

コードを見つけたGoogleで検索しました\\*が、まだ機能しません。誰かが私に解決策または説明を提供できますか?

これが私のコードです

#!/bin/bash

if [ $# != 3 ]; then  
  echo You did not run the program correctly   
  echo Example: calculator 4 + 5                
  exit 1 
fi

if [ $2 = "+" ]; then    
  ANSWER=`expr $1 + $3`    
 echo $ANSWER 
fi

if [ $2 = "*" ]; then
  ANSWER=`expr $1 \\* $3`  
  echo $ANSWER 
fi

exit 0
4

3 に答える 3

13

シェル構文では特別な文字であるため、エスケープする*必要があります。(エスケープしないと、現在のディレクトリ内のすべてのファイルのリストに展開されます)。ただし、エスケープするにはバックスラッシュを 1 つだけ使用する必要があります。

ANSWER=`expr $1 \* $3` 
于 2014-11-30T21:08:07.627 に答える