⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex63.sh

📁 BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版
💻 SH
字号:
#!/bin/bash#               阶乘#               ----# bash允许递归吗? # 嗯, 允许, 但是...# 他太慢了, 所以恐怕你难以忍受. MAX_ARG=5E_WRONG_ARGS=65E_RANGE_ERR=66if [ -z "$1" ]then  echo "Usage: `basename $0` number"  exit $E_WRONG_ARGSfiif [ "$1" -gt $MAX_ARG ]then  echo "Out of range (5 is maximum)."  #  现在让我们来了解一些实际情况.   #  如果你想计算比这个更大的范围的阶乘,   #+ 应该用真正的编程语言来重写它.   exit $E_RANGE_ERRfi  fact (){  local number=$1  #  变量"number"必须声明为局部变量,   #+ 否则不能正常工作.   if [ "$number" -eq 0 ]  then    factorial=1    # 0的阶乘为1.   else    let "decrnum = number - 1"    fact $decrnum  # 递归的函数调用(就是函数调用自己).     let "factorial = $number * $?"  fi  return $factorial}fact $1echo "Factorial of $1 is $?."exit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -