Linux ./fibonacci.sh:第11行:意外标记“do'”附近的语法错误;

Linux ./fibonacci.sh:第11行:意外标记“do'”附近的语法错误;,linux,shell,fibonacci,Linux,Shell,Fibonacci,你知道我的斐波那契脚本有什么问题吗?我总是收到错误消息: ./fibonacci.sh:第11行:意外标记“do”附近的语法错误 #!/bin/bash #fibonacci echo "Geben Sie die n-te Fibonacci-Zahl ein:" read n if [$n -lt 2]; then echo $n else array[0] = 0 array[1] = 1 for[k=2; $k -le $n; k++]; do

你知道我的斐波那契脚本有什么问题吗?我总是收到错误消息: ./fibonacci.sh:第11行:意外标记“do”附近的语法错误

#!/bin/bash
#fibonacci
echo "Geben Sie die n-te Fibonacci-Zahl ein:"
read n

if [$n -lt 2]; then
    echo $n
else
    array[0] = 0
    array[1] = 1
    for[k=2; $k -le $n; k++]; do
        x = $array[0] + $array[1]
        $array[0] = $array[1]
        $array[1] = $x
    done
    echo $array[1]
fi
请帮忙

你体内有一些虫子。 首先,数组使用不当。如果使用大括号,请使用大括号。看见第二,我用
while
循环重新设计了您的代码-这更容易理解。第三,bash不喜欢赋值中的空格

#!/bin/bash
#fibonacci
echo "Geben Sie die n-te Fibonacci-Zahl ein:"
read n

if [ $n -lt 2 ]; then
    echo $n
else
    array[0]=0
    array[1]=1
    k=2
    while [ $k -le $n ]
    do
        let x=${array[0]}+${array[1]}
        array[0]=${array[1]}
        array[1]=$x
        let k=$k+1
    done
    echo ${array[1]}
fi
例如:

$ ./test.sh 
Geben Sie die n-te Fibonacci-Zahl ein:
6
8

大家好,欢迎来到Stackoverflow。由于您是新手,您应该看看常见问题解答