请帮帮我,如何在我的bash脚本中显示第五个?

时间:2013-05-14 03:52:19

标签: bash variables math logic

我的剧本

#!/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"适用于$bil1和" -6"对于$bil2,为什么结果是错误的?

这是视觉

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

我想要

Your result : -1 - -6 = 5

如何在我的bash脚本中显示数字5

2 个答案:

答案 0 :(得分: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 " 

答案 1 :(得分:0)

您可以使用关键字'let'

计算两个数字

e.g。 i=1 j=2 let k=$i+$j or let k=$i-$j

因此$k=3$k=-1