【问题标题】:Please help me, How to show number five in my bash script?请帮助我,如何在我的 bash 脚本中显示第五个?
【发布时间】:2013-05-14 03:52:19
【问题描述】:

我的脚本

#!/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 " 

如果我为$bil1 输入“-1”,为$bil2 输入“-6”,为什么结果是错误的?

这是视觉效果

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

我想要

Your result : -1 - -6 = 5

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

【问题讨论】:

  • 脚本的目的是什么?减/加两个数字?
  • 那么请使用`expr $num1 - $num2`
  • 它不起作用。你能再帮我一次吗??
  • 我发布了一个答案..试试看。
  • 哦,对不起。我不在 expr 中输入“P”。它工作。谢谢你的帮助..

标签: bash variables math logic


【解决方案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.2”,它不起作用,为什么结果是错误的?。请再次帮助我..?? :(
  • 您能帮帮我吗? :(
  • 但我想将该命令与 expr 结合起来。因此,该结果可以显示整数而不是整数。
  • 我很困惑...show integers number and not integers number. 是什么意思?
  • 你不要同时使用,,,只使用后者...它适用于整数和非整数。
【解决方案2】:

你可以使用关键字'让'让两个数字计算

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

因此$k=3$k=-1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    相关资源
    最近更新 更多