思路
- 获取用户输入模式:使用
read
命令获取用户输入的模式,如 mode1
或 mode2
。
- 检测系统环境:通过
uname
命令判断当前系统类型(CentOS、Ubuntu、macOS 等)。
- 动态加载并执行子脚本片段:根据用户输入模式和系统环境,通过
source
命令动态加载对应的子脚本片段。
脚本框架示例
#!/bin/bash
# 获取用户输入模式
echo "请输入模式 (mode1/mode2):"
read mode
# 检测系统环境
system=$(uname -s)
# 根据模式和系统环境加载并执行子脚本
if [ "$mode" == "mode1" ]; then
if [ "$system" == "Linux" ]; then
# 假设 CentOS 和 Ubuntu 子脚本名为 mode1_linux.sh
source mode1_linux.sh
elif [ "$system" == "Darwin" ]; then
source mode1_macos.sh
else
echo "不支持的系统环境"
fi
elif [ "$mode" == "mode2" ]; then
if [ "$system" == "Linux" ]; then
# 假设 CentOS 和 Ubuntu 子脚本名为 mode2_linux.sh
source mode2_linux.sh
elif [ "$system" == "Darwin" ]; then
source mode2_macos.sh
else
echo "不支持的系统环境"
fi
else
echo "无效的模式"
fi
说明
- 首先提示用户输入模式,并使用
read
命令获取输入。
- 通过
uname -s
获取系统类型,Linux
代表类 Linux 系统(CentOS、Ubuntu 等),Darwin
代表 macOS。
- 根据用户输入的模式和系统类型,使用
source
命令加载并执行对应的子脚本片段。如果系统环境不支持或模式无效,给出相应提示。子脚本片段可以根据具体功能编写,例如 mode1_linux.sh
、mode1_macos.sh
等分别实现 mode1
在不同系统下的功能。