```bash #!/bin/bash is_integer() { if [[ $1 =~ ^-?[0-9]+$ ]]; then return 0 else return 1 fi } calculate_average() { local num1=$1 local num2=$2 local num3=$3 average=$(echo "scale=2; ($num1 + $num2 + $num3) / 3" | bc) echo "平均值是: $average" } # 检查是否传入了 3 个位置参数 if [ $# -eq 3 ]; then # 检查位置参数是否为整数 if is_integer $1 && is_integer $2 && is_integer $3; then echo "通过位置参数传入的 3 个数是: $1, $2, $3" calculate_average $1 $2 $3 else echo "位置参数必须是整数。" exit 1 fi else echo "请输入 3 个整数:" read -p "第一个数: " num1 read -p "第二个数: " num2 read -p "第三个数: " num3 # 检查输入是否为整数 if is_integer $num1 && is_integer $num2 && is_integer $num3; then calculate_average $num1 $num2 $num3 else echo "输入无效,请输入 3 个整数。" exit 1 fi fi ``` ```bash ```