我正在尝试创建一个输出斐波纳契数的函数。这是代码:
#!/bin/bash
a1=0;
a2=1;
echo "Vnesi n"
read n
echo $a1
echo $a2
for ((i = 1; i <= $n; i++)) do
a3=$(($a1+$a2))
echo $a3
$a1=$a2
$a2=$a3
done
当我运行它时,它会到达第10行(echo $ a3),然后输出错误:
1
0
1
1
./fib.sh: line 11: 0=1: command not found
./fib.sh: line 12: 1=1: command not found
基本上我要做的是将值从a2传递给a1,将值从a3传递给a2。我在这里做错了什么?
答案 0 :(得分:2)
您的第一个变量分配是正确的:
a1=0
a2=1
第二个错误地在左侧标有美元符号:
$a1=$a2 # Should be a1=$a2
$a2=$a3 # Should be a2=$a3
答案 1 :(得分:1)
替换
$a1=$a2
$a2=$a3
与
a1=$a2
a2=$a3
答案 2 :(得分:0)
A1 = A2 $
不是$ a1
否则评估左侧并使用值(0或其他)