-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

由于您的目标是减去两个数字,请使用以下...更清洁和更容易(我真的看不出有任何理由使用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

您可以使用关键字“让”让两个数字计算

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

因此$k=3$k=-1

于 2013-05-14T04:26:49.960 回答