我对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)
但我不知道该怎么写。
答案 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
$