[英]strange errors on bash script
警告:我最近才刚开始学习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 "=")
不太确定您的计算结果,但是您在语法上清理的基本脚本就是这个:
#!/bin/bash
calculate() {
if [ $1 -eq 0 ]; then
echo -n "0"
elif [ $1 -eq 1 ]; then
echo -n "1"
elif [ $1 -ge 1 ]; then
var1=$( calculate $(($1-1)) )
var2=$( calculate $(($1-2)) )
var3=$((3*(var1-2)*var2))
echo $var3
fi
}
calculate 5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.