现在的位置: 首页 > 综合 > 正文

用shell脚本(bash script)求fibonacci数列

2014年08月12日 ⁄ 综合 ⁄ 共 742字 ⁄ 字号 评论关闭
#!/bin/bash
# Program--fib.sh
#   Use loop to calculate fibonacci at n
# History: 
# 2013/05/24 Aborn V0.0
# note: if you find the follow error msg
#       declare: not found
# pls. use the follow cmd.
#       sudo ln -s /bin/bash /bin/sh -f
 
declare -i i;
declare -i n;
declare -i pre;
declare -i rs;

if [ "$#" = "1" ];then
    n="$1"
else
    read -p "input the n (number):" n
fi

echo "calculate f($n)..."
i=0;
rs=0;     # the current num f(n)
pre=0;    # the previous num f(n-1)

while [ "$i" != "$n" ]
do  
    i=$(($i+1))
    if [ "$n" -lt "0" ]; then
        echo "n($n) must be assigned non-negative"
        exit 1
    fi
    if [ "$i" = "0" ]; then
	pre=0;
	rs=0;
    elif [ "$i" = "1" ]; then
	pre=0;
	rs=1;
    else
	rs=$(($rs+$pre));
	pre=$(($rs-$pre));
    fi
    echo -n "$rs "; 
done    
echo -e "\nThe th-$n fibonacci is f($n)=$rs"

你如果发现运行时出现如下error

declare: not found

在终端运行以下命令就行(因为sh默认指向的是dash,我们想要的是bash)

sudo ln -s /bin/bash /bin/sh -f

运行结果如下:

写shell脚本尤其要注意空格, []里尤其如此,经常出错

抱歉!评论已关闭.