协助使用bash算术功能

时间:2013-10-28 02:02:48

标签: bash

我对Java非常流利,但我很难过渡到bash

完成下面名为arith的功能以完成以下任务:

  • 如果变量a的值小于变量b的值,则调用函数add,

  • 否则调用函数sub。

所以,到目前为止的代码是:

echo "Enter two integers on separate lines"
read a
read b

add()
{
  echo "$a + $b = $((a + b))"
}

sub()
{
  echo "$a - $b = $((a - b))"
}

arith()
{
  If{... # To be completed
}

我认为它应该是

的格式
arith()
{
    //if(a<b, call function add)
    //else(call function sub)

但我不知道该怎么写。

1 个答案:

答案 0 :(得分:2)

除了函数可能不应该访问全局变量之外,您可以编写:

arith()
{
    if [ "$a" -lt "$b" ]
    then add
    else sub
    fi
}

或者:

arith()
{
    if [[ "$a" < "$b" ]]
    then add
    else sub
    fi
}

通常情况下,您编写的代码更像是:

add()
{
    echo "$1 + $2 = $(($1 + $2))"
}

sub()
{
    echo "$1 - $2 = $(($1 - $2))"
}

arith()
{
    if [[ "$1" < "$2" ]]
    then add "$1" "$2"
    else sub "$1" "$2"
    fi
}

因此:

$ arith 1 2
1 + 2 = 3
$ arith 2 1
2 - 1 = 1
$ arith 1 1
1 - 1 = 0
$