-1

私のスクリプト

#!/bin/bash
clear
echo -n "number 1 : "
read bil1
echo -n "number 2 : "
read bil2
krng=$(echo $bil1 - $bil2 |bc -l |sed -e 's/^\./0./' -e 's/^-\./-0./');
echo " Your result : $bil1 - $bil2 = $krng " 

-1" " for$bil1と " -6" forを入力すると$bil2、結果がエラーになるのはなぜですか?

これがビジュアル

number 1 : -1
number 2 : -6
(standar_in) 1: syntax error
Your result : -1 - -6 = 

私が欲しい

Your result : -1 - -6 = 5

5私のbashスクリプトで数字を表示する方法

4

2 に答える 2

1

あなたの目的は2つの数値を減算することなので、plsは次を使用します...はるかにクリーンで簡単です(問題に使用する理由は本当にわかりませんsed)。

read x
read y
echo "$x - $y =  `expr $x - $y`"

したがって、上記のコードは次のように簡略化できます。

#!/bin/bash
echo -n "number 1 : "
read bil1
echo -n "number 2 : "
read bil2
krng=`expr $bil1 - $bil2`
echo " Your result : $bil1 - $bil2 = $krng " 

上記の方法は整数に対してのみ機能します...浮動小数点数がある場合は、次を使用します..(これは整数でも機能します)

#!/bin/bash
echo -n "number 1 : "
read bil1
echo -n "number 2 : "
read bil2
krng=$(echo $bil1 - $bil2 | bc)
echo " Your result : $bil1 - $bil2 = $krng " 
于 2013-05-14T04:04:12.577 に答える
0

キーワード「let」を使用して、2 つの数値を計算させることができます

例えば i=1 j=2 let k=$i+$j or let k=$i-$j

したがって、$k=3または$k=-1

于 2013-05-14T04:26:49.960 に答える