gpt4 book ai didi

bash - bash 中的递归函数

转载 作者:行者123 更新时间:2023-11-29 08:42:40 25 4
gpt4 key购买 nike

我想在 bash 中做一个返回数字阶乘的函数

这是当前代码不起作用的代码,任何人都可以告诉我哪里出了问题以及如何更正它吗?我刚开始学习 bash,还不是很了解。

#!/bash/bin
factorial()
{
let n=$1
if (( "$n" <= "1" ))
then return 1
else
factorial n-1
return $n*$?
fi
return 0
}
factorial 5
echo "factorial 5 = $?"

最佳答案

有几种语法和一个很明显的逻辑(返回0)

工作版本如下:

#!/bin/bash

factorial()
{
if (( $1 <= 1 )); then
echo 1
else
last=$(factorial $(( $1 - 1 )))
echo $(( $1 * last ))
fi
}
factorial 5

你错过了:

  1. 返回错误(应该使用echo)

  2. shbang 行(是/bin/bash 不是/bash/bin)

  3. 不能在 (( ))$(( )) (或 let 之外进行算术运算,但是 (( )) 是首选)

关于bash - bash 中的递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9682524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com