递归bash linux脚本

时间:2016-02-04 10:42:46

标签: linux bash recursion

是否可以将对递归脚本的调用值赋给变量? 这是我的代码,错误说在第10行:RIS = 2 * 1 ... 3 * 2等 这似乎是件好事,但RIS没有分配到真正的价值。

DECR=$1

if [[ ${DECR} -gt 0 ]] ; then
    echo ${DECR}
    ((DECR2 = ${DECR}-1))
    ((RIS = ${DECR} * `./fattoriale1.sh ${DECR2}`))
else
    ((RIS=1))
fi

echo ${RIS}

Error: ./fattoriale1.sh: riga 9: ((: RIS = 2 * 1
1: errore di sintassi nell'espressione (il token dell'errore è "1")
./fattoriale1.sh: riga 9: ((: RIS = 3 * 2
2: errore di sintassi nell'espressione (il token dell'errore è "2")
./fattoriale1.sh: riga 9: ((: RIS = 4 * 3
6: errore di sintassi nell'espressione (il token dell'errore è "6")
12

感谢。

1 个答案:

答案 0 :(得分:1)

你的函数中有2个echo语句,所以如果DECR> 0然后函数的输出包含换行符。错误消息表明您正在尝试执行:

((RIS = 2 * 1
1))

删除echo $DECR或将其更改为打印到stderr:echo $DECR >&2