【问题标题】:./fibonacci.sh: line 11: syntax error near unexpected token `do'./fibonacci.sh:第 11 行:意外标记“do”附近的语法错误
【发布时间】:2012-11-04 00:03:16
【问题描述】:

你知道我的斐波那契脚本出了什么问题吗,我总是收到错误消息: ./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

请帮忙!

【问题讨论】:

  • 您好,欢迎来到 Stackoverflow。由于您是新手,您应该看看常见问题解答stackoverflow.com/faq

标签: linux shell fibonacci


【解决方案1】:

您的内部有一些错误。 一是数组使用不当。如果使用花括号,请使用它们。见here。其次,我用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

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    相关资源
    最近更新 更多