如何在Windows系统Git Bash提示符中去除datetime格式的前导零与空格
问题根因
Git Bash 依赖的 msys2 运行时的 strftime 实现不支持 - 前缀去前导零,%# 是微软原生 CRT 的语法,不会被 msys2 层识别,因此两种写法都会失效。
解决方案
绕开内置 \D 格式限制,用外部 date 命令配合 sed 实时处理日期格式,修改后配置同时兼容 Ubuntu 和 Git Bash 环境,不需要额外做系统判断。
完整可用配置
PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title PS1="$PS1"'\n' # new line PS1="$PS1"'\[\033[32m\]' # change to green # 下方为修改后的日期时间行,\$转义保证每次刷新提示符都会重新计算时间 PS1="$PS1""[\$(date +'%m/%d %l:%M:%S %P' | sed 's/^0*//; s/\/0*/\//; s/ 0*/ /g')] " PS1="$PS1"'\[\033[33m\]' # change to brownish yellow PS1="$PS1"'\w' # current working directory
格式处理说明
sed 规则对应去除三类多余字符:
s/^0*//移除月份开头的前导零s/\/0*/\//移除日期字段开头的前导零s/ 0*/ /g移除小时字段开头的前导零和多余空格
最终输出格式完全符合要求,示例:[5/9 1:23:07 pm],无多余前导零、无多余空格。
内容的提问来源于stack exchange,提问作者Word Demon
相关产品推荐
相关产品推荐

