一、脚本
#!/bin/bash
#定义函数名fun1
fun1 () {
#定义函数阶层初始值
factorial=1
#使阶层循环
for((i=1;i<=$1;i++))
do
#阶层公式
factorial=$[$factorial*$i]
done
#输出阶层结果
echo "$1的阶乘是:$factorial"
}
fun1 $1
fun1 $2
fun1 $3
二、结果
[root@localhost ~]# bash hanshu1.sh 4 5 6
4的阶乘是:24
5的阶乘是:120
6的阶乘是:720
三、原理
1.一次传参
bash hanshu1.sh 4 5 6
传入4 5 6 三个参数-->fun1 $1:函数fun1只能接收参数$1(4)
fun1 $2: 函数fun1只能接收参数$2(5)
fun1 $2: 函数fun1只能接收参数$3(6)
2、第二次传参
fun1 $1:通过上次接收。。。此时它只有一个数4,相对位置为$1
传给函数体for((i=1;i<=$1;i++))进行计算
fun1 $2: 通过上次接收。。。此时它只有一个数5,相对位置为$1
传给函数体for((i=1;i<=$1;i++))进行计算
fun1 $3: 通过上次接收。。。此时它只有一个数6,相对位置为$1
传给函数体for((i=1;i<=$1;i++))进行计算