linux shell递归方式实现斐波那契函数

#!/bin/bash
fb(){
if [ $a -le 2 ]
then echo 1
else
declare -i c=$a-2+$a-1
echo $c
fi
}
for a in `seq 1 15`
do
fb $a
done

这里有个问题尚未解决,就是如果第三行的条件写成

[ $a -eq 1 || $a -eq 2 ]

然后第6行如果我使用expr函数写成

expr `$a - 2 + $a - 1`

然后把第7行删了

结果输出的为

[root@localhost rjgc]# bash s.sh 
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 1: 未找到命令
s.sh:行5: 1-2+1-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 2: 未找到命令
s.sh:行5: 2-2+2-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 3: 未找到命令
s.sh:行5: 3-2+3-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 4: 未找到命令
s.sh:行5: 4-2+4-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 5: 未找到命令
s.sh:行5: 5-2+5-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 6: 未找到命令
s.sh:行5: 6-2+6-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 7: 未找到命令
s.sh:行5: 7-2+7-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 8: 未找到命令
s.sh:行5: 8-2+8-1: 未找到命令
expr: 缺少操作数
Try 'expr --help' for more information.
s.sh: 第 3 行:[: 缺少 `]'
s.sh:行3: 9: 未找到命令
s.sh:行5: 9-2+9-1: 未找到命令

条件判断完全失效,expr也成了存粹的字符串输出,那位大佬看见了能否指点一下吖!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值