#!/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也成了存粹的字符串输出,那位大佬看见了能否指点一下吖!