MST

星途 面试题库

面试题:Bash函数的递归与错误处理

编写一个Bash函数,使用递归方式计算阶乘。要求在函数内部处理输入非正整数的错误情况,并通过合适的方式提示错误。最后在脚本中调用该函数并输出不同输入值的阶乘结果。
22.5万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 定义计算阶乘的递归函数
factorial() {
    local num=$1
    if (( num < 0 )); then
        echo "错误:输入的数字不能为负数"
        return 1
    elif (( num == 0 || num == 1 )); then
        echo 1
    else
        local result=$(( num * $(factorial $((num - 1))) ))
        echo $result
    fi
}

# 调用函数并输出不同输入值的阶乘结果
echo "5的阶乘: $(factorial 5)"
echo "3的阶乘: $(factorial 3)"
echo "0的阶乘: $(factorial 0)"
echo "-2的阶乘: $(factorial -2)"