一键式环境版本管理神器——轻松切换Python、Java及其他环境

使用 Bash 脚本管理环境版本:一个全面指南

引言

在开发过程中,不同项目可能依赖不同的语言环境版本,比如Python 2.x与Python 3.x之间的差异,或是Java的不同版本。频繁的手动切换不仅耗时而且容易出错。本文将向大家介绍一款自定义的一键式环境版本管理脚本,它能够帮助开发者快速、准确地管理Python、Java以及其他环境的版本。

脚本概述

此脚本采用Bash编写,利用update-alternatives工具实现了对环境版本的动态管理。用户可以通过简单的交互界面,完成环境版本的添加、删除及切换操作。以下是脚本的主要功能模块:

  1. 主菜单:提供了一个简洁明了的交互界面,用户可以根据需求选择管理Python版本、Java版本或其他环境版本。
  2. Python版本管理
    • 列出已配置的Python版本。
    • 添加新的Python版本至系统中。
    • 删除不再需要的Python版本。
  3. Java版本管理
    • 显示当前系统中可用的Java版本。
    • 注册新的Java版本。
    • 移除旧的Java版本。
  4. 其他环境版本管理
    • 支持对任意命令的版本进行管理。
    • 提供了添加、删除特定环境版本的功能。
  5. 辅助功能
    • 检查脚本是否以root权限运行,确保操作的安全性。
    • 提供暂停功能,以便用户查看信息后按回车键继续。
脚本内容
#!/bin/bash

# 定义颜色码
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
NC="\033[0m" # No Color

# 检查是否为 root 用户
if [[ $EUID -ne 0 ]]; then
    echo -e "${RED}请以 root 用户身份运行此脚本或使用 sudo.${NC}"
    exit
fi

# Function to display the main menu
function show_main_menu {
    while true; do
        clear
        echo -e "${GREEN}==============================${NC}"
        echo -e "${GREEN}|     环境版本管理面板       |${NC}"
        echo -e "${GREEN}==============================${NC}"
        echo -e "${YELLOW}1. 管理 Python 版本${NC}"
        echo -e "${YELLOW}2. 管理 Java 版本${NC}"
        echo -e "${YELLOW}3. 其他环境版本管理${NC}"
        echo -e "${YELLOW}4. 退出${NC}"
        echo -e "${GREEN}==============================${NC}"
        read -p "请选择一个选项: " main_choice
        case $main_choice in
            1) manage_python ;;
            2) manage_java ;;
            3) manage_other ;;
            4) exit 0 ;;
            *) echo -e "${RED}无效选项${NC}"; sleep 2 ;;
        esac
    done
}

# Function to manage Python versions
function manage_python {
    while true; do
        clear
        echo -e "${GREEN}==============================${NC}"
        echo -e "${GREEN}|     管理 Python 版本       |${NC}"
        echo -e "${GREEN}==============================${NC}"
        echo -e "${YELLOW}1. 列出 Python 配置${NC}"
        echo -e "${YELLOW}2. 添加/更新 Python 版本${NC}"
        echo -e "${YELLOW}3. 删除 Python 版本${NC}"
        echo -e "${YELLOW}4. 返回主菜单${NC}"
        echo -e "${GREEN}==============================${NC}"
        read -p "请选择一个选项: " python_choice
        case $python_choice in
            1) sudo update-alternatives --config python; pause ;;
            2) add_python_version ;;
            3) remove_python_version ;;
            4) break ;;
            *) echo -e "${RED}无效选项${NC}"; sleep 2 ;;
        esac
    done
}

# Function to add a Python version
function add_python_version {
    read -p "输入 Python 的实际路径: " python_path
    read -p "输入优先级: " priority
    sudo update-alternatives --install /usr/bin/python python $python_path $priority
    echo -e "${GREEN}Python 版本已添加/更新。${NC}"
    pause
}

# Function to remove a Python version
function remove_python_version {
    echo -e "${YELLOW}搜索出可执行的 Python 文件路径:${NC}"
    find / -name "python*" -type f -executable 2>/dev/null
    echo -e "${GREEN}==============================${NC}"
    
    read -p "输入要删除的 Python 的实际路径: " python_path
    echo -e "${GREEN}Python 的可执行文件路径为:$python_path${NC}"
    sudo update-alternatives --remove python $python_path
    echo -e "${GREEN}Python 版本已删除。${NC}"
    pause
}

# Function to manage Java versions
function manage_java {
    while true; do
        clear
        echo -e "${GREEN}==============================${NC}"
        echo -e "${GREEN}|     管理 Java 版本         |${NC}"
        echo -e "${GREEN}==============================${NC}"
        echo -e "${YELLOW}1. 列出 Java 配置${NC}"
        echo -e "${YELLOW}2. 添加/更新 Java 版本${NC}"
        echo -e "${YELLOW}3. 删除 Java 版本${NC}"
        echo -e "${YELLOW}4. 返回主菜单${NC}"
        echo -e "${GREEN}==============================${NC}"
        read -p "请选择一个选项: " java_choice
        case $java_choice in
            1) sudo update-alternatives --config java; pause ;;
            2) add_java_version ;;
            3) remove_java_version ;;
            4) break ;;
            *) echo -e "${RED}无效选项${NC}"; sleep 2 ;;
        esac
    done
}

# Function to add a Java version
function add_java_version {
    read -p "输入 Java 的实际路径: " java_path
    read -p "输入优先级: " priority
    sudo update-alternatives --install /usr/bin/java java $java_path $priority
    echo -e "${GREEN}Java 版本已添加/更新。${NC}"
    pause
}

# Function to remove a Java version
function remove_java_version {
    echo -e "${YELLOW}搜索出可执行的 Java 文件路径:${NC}"
    find / -name "java*" -type f -executable 2>/dev/null
    echo -e "${GREEN}==============================${NC}"
    
    read -p "输入要删除的 Java 的实际路径: " java_path
    echo -e "${GREEN}Java 的可执行文件路径为:$java_path${NC}"
    sudo update-alternatives --remove java $java_path
    echo -e "${GREEN}Java 版本已删除。${NC}"
    pause
}

# Function to manage other environments
function manage_other {
    while true; do
        clear
        echo -e "${GREEN}==============================${NC}"
        echo -e "${GREEN}|   其他环境版本管理          |${NC}"
        echo -e "${GREEN}==============================${NC}"
        echo -e "${YELLOW}1. 列出特定环境的配置${NC}"
        echo -e "${YELLOW}2. 添加/更新环境版本${NC}"
        echo -e "${YELLOW}3. 删除环境版本${NC}"
        echo -e "${YELLOW}4. 返回主菜单${NC}"
        echo -e "${GREEN}==============================${NC}"
        read -p "请选择一个选项: " other_choice
        case $other_choice in
            1) list_other_config ;;
            2) add_other_version ;;
            3) remove_other_version ;;
            4) break ;;
            *) echo -e "${RED}无效选项${NC}"; sleep 2 ;;
        esac
    done
}

# Function to list configuration for a specific command
function list_other_config {
    read -p "输入要管理的命令名称: " cmd_name
    sudo update-alternatives --config $cmd_name
    pause
}

# Function to add/update a specific command
function add_other_version {
    read -p "输入要管理的命令名称: " cmd_name
    read -p "输入命令的实际路径: " cmd_path
    read -p "输入优先级: " priority
    sudo update-alternatives --install /usr/bin/$cmd_name $cmd_name $cmd_path $priority
    echo -e "${GREEN}$cmd_name 版本已添加/更新。${NC}"
    pause
}

# Function to remove a specific command
function remove_other_version {
    read -p "输入要管理的命令名称: " cmd_name
    
    echo -e "${YELLOW}搜索出可执行的 $cmd_name 文件路径:${NC}"
    find / -name "$cmd_name*" -type f -executable 2>/dev/null
    echo -e "${GREEN}==============================${NC}"
    
    read -p "输入要删除的 $cmd_name 的实际路径: " cmd_path
    echo -e "${GREEN}$cmd_name 的可执行文件路径为:$cmd_path${NC}"
    sudo update-alternatives --remove $cmd_name $cmd_path
    echo -e "${GREEN}$cmd_name 版本已删除。${NC}"
    pause
}

# Function to pause and wait for user input
function pause {
    read -p "按回车键继续..." pause_key
}

# Show the main menu
show_main_menu
示例

假设您需要在开发环境中切换Python 2和Python 3,只需进入脚本提供的Python版本管理界面,按照提示操作即可轻松完成版本切换。

结论

这款环境版本管理脚本极大地简化了多版本环境的管理工作,提高了开发效率。无论是初学者还是经验丰富的开发者,都可以通过它享受到便捷的环境管理体验。希望这款脚本能成为您开发过程中的得力助手!


制作不易!一键三连支持下呗!!!

猜你喜欢

转载自blog.csdn.net/BG1230521/article/details/143101515
今日推荐