ZSH - 在正确的提示中打印 java 版本
ZSH - print java version in right prompt
我有一个日常用例,我需要在不同版本的 Java(8、11、...)上处理项目。
我想让它显示在我的 shell(ZSH 和 Oh-My-Zsh)的右侧提示中。我知道一个虚拟的方法(计算昂贵)来做到这一点(只是 java --version 到 var 并显示它)。我希望它缓存它直到我不获取文件(这是一个特定的项目文件,它为不同的 java 版本设置新的环境变量)。
您知道如何有效地执行此操作吗?
Br,
斯捷潘
PROMPT
和RPROMPT
变量可以有静态部分和动态部分,所以你可以在源项目文件的时候在那里设置版本,它只会计算一次。诀窍是正确引用。
此行位于设置环境变量的项目文件中,在设置 PATH
以包含首选 java
可执行文件之后的某处:
RPROMPT="${${=$(java --version)}[1,3]}"
件数:
RPROMPT=
- 右侧提示的变量。
"..."
- 关键部分。双引号中的变量会随即展开,因此其中的命令只会在项目文件被获取时执行。
${...[1,3]}
- 选择封闭表达式的前三个词。在我的系统上,java --version
returns 三行数据,对于提示来说太大了;这将其减少到易于管理的程度。
${=...}
- 将包含的值拆分为单词。
$(java --version)
- jre 版本信息。
我有一个日常用例,我需要在不同版本的 Java(8、11、...)上处理项目。
我想让它显示在我的 shell(ZSH 和 Oh-My-Zsh)的右侧提示中。我知道一个虚拟的方法(计算昂贵)来做到这一点(只是 java --version 到 var 并显示它)。我希望它缓存它直到我不获取文件(这是一个特定的项目文件,它为不同的 java 版本设置新的环境变量)。
您知道如何有效地执行此操作吗?
Br, 斯捷潘
PROMPT
和RPROMPT
变量可以有静态部分和动态部分,所以你可以在源项目文件的时候在那里设置版本,它只会计算一次。诀窍是正确引用。
此行位于设置环境变量的项目文件中,在设置 PATH
以包含首选 java
可执行文件之后的某处:
RPROMPT="${${=$(java --version)}[1,3]}"
件数:
RPROMPT=
- 右侧提示的变量。"..."
- 关键部分。双引号中的变量会随即展开,因此其中的命令只会在项目文件被获取时执行。${...[1,3]}
- 选择封闭表达式的前三个词。在我的系统上,java --version
returns 三行数据,对于提示来说太大了;这将其减少到易于管理的程度。${=...}
- 将包含的值拆分为单词。$(java --version)
- jre 版本信息。