我的剧本
#!/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
答案 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