我想在bash命令提示符中显示Node的版本。我创建了一个函数来生成PS1的该部分。它获取Node的主版本,并根据其数值为其着色。在我的.bash_profile
:
nv_ps1 () {
nv_re="v([0-9]+)\.[0-9]+\.[0-9]"
if [[ $($NVM_BIN/node --version) =~ $nv_re ]]; then
nv_major=${BASH_REMATCH[1]}
let nv_color=$nv_major+26
echo "\[\e[${nv_color}m\]$nv_major\[\e[m\]"
fi
}
export PS1="[\$(nv_ps1) \[\e[36m\]\t\[\e[m\] \W]\\$ "
但是,不会对函数输出中的转义序列进行求值,并且命令提示符最终看起来像这样:
[\[\e[34m\]8\[\e[m\] 08:54:58 ~]$
我该如何工作?
在您的函数中nv_ps1
,尝试使用echo -e "\033[${nv_color}m${nv_major}\033[0m"
,它应该更好
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句