shell创建库文件,编写三个函数分别求一个数组的最大值、最小值、平均值,然后在脚本中调用函数求输入的任意数组的最大值、最小值、平均值。
时间: 2024-12-24 21:24:08 浏览: 3
在shell脚本中创建库文件并包含函数,可以分为以下几个步骤:
1. 创建一个名为`math_functions.sh`的库文件,用于存放函数定义:
```bash
#!/bin/bash
# 定义计算最大值的函数
max_value() {
local arr=("$@") # 接收传递的数组作为参数
if [ ${#arr[@]} -gt 0 ]; then
max=${arr[0]}
for i in "${arr[@]}"; do
[[ $i -gt $max ]] && max=$i
done
echo "$max"
else
echo "Array is empty."
fi
}
# 定义计算最小值的函数
min_value() {
local arr=("$@")
if [ ${#arr[@]} -gt 0 ]; then
min=${arr[0]}
for i in "${arr[@]}"; do
[[ $i -lt $min ]] && min=$i
done
echo "$min"
else
echo "Array is empty."
fi
}
# 定义计算平均值的函数
average_value() {
local sum=0
local arr=("$@")
if [ ${#arr[@]} -gt 0 ]; then
for num in "${arr[@]}"; do
((sum += num))
done
avg=$(echo "scale=2; $sum/${#arr[@]}" | bc)
echo "$avg"
else
echo "Array is empty."
fi
}
```
2. 在主脚本`main_script.sh`中,先加载库文件,然后调用函数:
```bash
#!/bin/bash
source math_functions.sh
# 示例:从用户获取数组元素
read -a input_array
# 调用函数计算最大值、最小值和平均值
max=$(max_value "${input_array[@]}")
min=$(min_value "${input_array[@]}")
avg=$(average_value "${input_array[@]}")
echo "Max value: $max"
echo "Min value: $min"
echo "Average value: $avg"
```
运行 `main_script.sh` 就可以看到结果。
阅读全文