【发布时间】:2012-03-26 21:36:41
【问题描述】:
警告:我最近才开始学习 bash,并尝试做一个递归函数来计算一个术语......所以......
x0 = 0 x1 = 1 xm = 3 * xm-1 - 2 * xm-2
目前我写的函数是:
#!/bin/bash
calculate()
{
if [ $1 -eq 0 ]
then
echo "0"
fi
if [ $1 -eq 1 ]
then
echo "1"
fi
if [ $1 -ge 1 ]
then
let var1 = `calculate [ $1-1 ]`;
let var2 = `calculate [ $1-2 ]`;
let var3 = 3*var1-2*var2;
echo var3
fi
}
calculate 3
但是我遇到了一些奇怪的错误...不确定我是否正确执行...谁能告诉我导致这些问题的原因并更正我的代码以使其正常工作?非常感谢。
错误:
TP1p1.sh: line 4: [: [: integer expression expected
TP1p1.sh: line 8: [: [: integer expression expected
TP1p1.sh: line 12: [: [: integer expression expected
TP1p1.sh: line 14: let: =: syntax error: operand expected (error token is "=")
TP1p1.sh: line 4: [: [: integer expression expected
TP1p1.sh: line 8: [: [: integer expression expected
TP1p1.sh: line 12: [: [: integer expression expected
TP1p1.sh: line 15: let: =: syntax error: operand expected (error token is "=")
TP1p1.sh: line 16: let: =: syntax error: operand expected (error token is "=")
【问题讨论】:
标签: linux bash function recursion