2016-03-24 16 views
0

私はユーザーから入力を受け取り、その入力に基づいて加算演算または減算が実行されます。選択肢1は加算用であり、2は減算用である。動的にシェルスクリプトに2つの数字を追加する

number.sh::12行目:D:行17::D:コマンドは

number.sh(添加ライン12のために)見つからないコマンドが見つからない (私は取得していますエラーがこれです減算ラインのためにここでは17)

コードです:

#!/bin/bash 
echo "enter choice" 
echo "enter 1 for addition" 
echo "enter 2 for subtraction" 
read a 
echo "entered choice is" $a 
echo "now enter 2 numbers" 
if [ $a = 1]; then 
read b 
read c 
d = `expr $b + $c` 
echo "addition of 2 numbers is" $d 
elif [ $a = 2]; then 
read b 
read c 
d = `expr $b - $c` 
echo "subtraction of 2 numbers is" $d 
else 
echo "enter valid choice" 
fi 
+0

割り当ての間にスペースがありません。yo – 123

+0

は機能しませんでした。コマンドが見つかりません。それを修正して投稿できますか? –

+0

それは働いていましたが、今私はこれを取得しています:入力された数値の減算は1-であり、完璧な答えではありません –

答えて

1

あなたの割り当ての周りの余分なスペースとあなたの[]表現の周りに不足しているスペースを持っています。ここに訂正版があります。 2つのreadコールを使用する場合は、入力を行うときに改行が必要であることに注意してください。つまり、5の結果を得るには、コマンドラインに1 <Enter> 2 <Enter> 3 <Enter>と入力する必要があります。

#!/bin/bash 
echo "enter choice" 
echo "enter 1 for addition" 
echo "enter 2 for subtraction" 
read a 
echo "entered choice is" $a 
echo "now enter 2 numbers" 
if [ $a = 1 ]; then 
read b 
read c 
d=`expr $b + $c` 
echo "addition of 2 numbers is" $d 
elif [ $a = 2 ]; then 
read b 
read c 
d=`expr $b - $c` 
echo "subtraction of 2 numbers is" $d 
else 
echo "enter valid choice" 
fi 
+0

ありがとうございます。出来た。 :) –

-1

ライン12と、これらのスペースを削除17上=記号の前後にスペースがあってはなりません。 bashでは、代入演算子=の周囲に空白を入れないでください。

関連する問題