将变量的值传递给另一个变量

时间:2014-01-02 17:43:28

标签: bash

我正在尝试创建一个输出斐波纳契数的函数。这是代码:

#!/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。我在这里做错了什么?

3 个答案:

答案 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或其他)