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

#!/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脚本尤其要注意空格, []里尤其如此,经常出错

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值