在bash函数中生成PS1

布雷特38

我想在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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章