Bash环境定制git分支提示符暨JDK版本切换脚本

一、在Bash提示符中显示Git分支

实现方法

  1. 编辑Bash配置文件

    打开 ~/.bashrc 文件,添加以下代码:

    bash 复制代码
    # 显示当前 Git 分支
    parse_git_branch() {
       git branch 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
    }
    export PS1='\[\033[01;35m\]$PPX\[\033[00m\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\[\033[33m\]$(parse_git_branch)\[\033[00m\]\$ '

    另一个版本是用git官方提供的git-prompt.sh脚本,该脚本内置了__git_ps1函数实现上面parse_git_branch相同的功能,

    但是git-prompt.sh所在的路径与Linux发行版相关,/usr/share/git/completion/git-prompt.sh是Ununtu下apt-get安装git所在的位置

bash 复制代码
   # 加载Git提示符支持
   source /usr/share/git/completion/git-prompt.sh
   # 定义PS1变量,包含Git分支信息
   export PS1='\[\033[01;35m\]$PPX\[\033[00m\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " (%s)") \$ '

注意 :上面的PS1的定义中\[\033[01;35m\]$PPX\[\033[00m\]是用于外部为提示符定义一个前缀,在下一章节会用到

  1. 应用配置

    运行 source ~/.bashrc 或重新打开终端,效果如下:

    bash 复制代码
    user@host:~/project (main) $ 

二、通过脚本切换JDK版本

我们一般会有一个默认Java编译环境,比如JDK8,但有的时候,可能会需要临时切换到另一个JDK环境,比如JDK9以上的环境。这时需要设置PATH,JAVA_HOME等环境变量,频繁切换的时候其实麻烦的。

所以可以写下面这样的一个脚本实现默认JDK环境到JDK9的切换。

1. java9.sh

bash 复制代码
#!/bin/bash

# 设置 JAVA_HOME 和更新 PATH
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
# 设置命令行提示符标志,参见上一节中PS1变量的定义
export PPX='[J9]'
# 启动一个新的 Bash 会话
exec bash

2. 执行效果

三、总结

  1. Git分支集成 :通过修改 PS1 变量实现动态分支显示,依赖Git的脚本支持。
  2. JDK版本管理 :利用环境变量 JAVA_HOMEPATH 控制Java版本,exec bash 确保配置生效。
相关推荐
qqty1217几秒前
Spring Boot管理用户数据
java·spring boot·后端
Flittly4 分钟前
【SpringAIAlibaba新手村系列】(1)初识 Spring AI Alibaba 框架
java·spring
LSL666_36 分钟前
MybatisPlus条件构造器(上)
java·数据库·mysql·mybatisplus
U-52184F691 小时前
深入理解“隐式共享”与“写时复制”:从性能魔法到内存深坑
java·数据库·算法
bearpping1 小时前
SpringBoot最佳实践之 - 使用AOP记录操作日志
java·spring boot·后端
一叶飘零_sweeeet1 小时前
线上故障零扩散:全链路监控、智能告警与应急响应 SOP 完整落地指南
java·后端·spring
Skilce1 小时前
ZrLog 博客系统部署指南(无 War 包版,Maven 构建 + 阿里云镜像优化)
java·阿里云·maven
敲代码的嘎仔1 小时前
Java后端开发——真实面试汇总(持续更新)
java·开发语言·程序人生·面试·职场和发展·八股
迈巴赫车主1 小时前
蓝桥杯20560逃离高塔
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
泯仲2 小时前
Ragent项目7种设计模式深度解析:从源码看设计模式落地实践
java·算法·设计模式·agent