0

我对 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)

但我不知道怎么写。

4

1 回答 1

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
$
于 2013-10-28T03:04:29.677 回答