在bash shell中执行我的命令后重置输出的颜色

洛克2000

我想通过不同的颜色轻松地将我的命令与Shell输出的其余部分区分开。但是我在定制bash shell方面没有太多经验,因此我不知道如何(在输入之后)重置颜色。

我当前的PS1变量如下所示:

export PS1="$red\u$green\$(__git_ps1) $turk\w
$white$ "

# '\$(__git_ps1)' git status prompt (generates a space before it even if empty)

所以我的输入是白色的。但是,即使命令的输出也为白色,因为它不会被重置。此外,如果命令本身对输出进行颜色编码,则它本身会重置颜色,从而导致白色和灰色的某种丑陋混合。

那么如何在输入命令后重新设置颜色?

伊尔卡楚

DEBUG陷阱每个命令之前运行,所以你可以滥用它重置的颜色,如果你有彩色的命令行输入。(“滥用”,因为这不是调试。)

有了这个:

$ promptcol="$(tput sgr0)$(tput setaf 3)"
$ cmdcol="$(tput sgr0)$(tput bold)"
$ normalcol="$(tput sgr0)"
$ trap 'echo -n "$normalcol"' DEBUG
$ PS1="\[$promptcol\]\w\$ \[$cmdcol\]"

我得到这个:

彩色提示

请注意,您需要在\[...\]周围加上颜色代码,以便外壳程序知道如何正确计算提示的宽度。另外,请注意,您不能将放在\[...\]变量内,外壳程序首先处理提示转义,然后才处理变量扩展。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在bash数组中获取shell命令的输出

来自分类Dev

在bash数组中获取shell命令的输出

来自分类Dev

无法在bash脚本中执行shell命令

来自分类Dev

Bash,调用新的shell后执行命令

来自分类Dev

在 awk 中执行 bash 命令并打印命令输出

来自分类Dev

OR后执行多个Bash命令

来自分类Dev

在bash中当前运行的命令后如何执行命令?

来自分类Dev

在 Haskell 中执行命令时保留 Bash 颜色

来自分类Dev

什么是| (竖线字符)在shell(bash)命令中执行?

来自分类Dev

Bash-在当前Shell中执行命令

来自分类Dev

Bash-在当前Shell中执行命令

来自分类Dev

在shell脚本变量中执行bash命令时出错

来自分类Dev

如何在bash脚本中循环执行Shell命令?

来自分类Dev

curl命令无法通过bash中的shell脚本执行

来自分类Dev

添加颜色后如何包装bash命令

来自分类Dev

我的Mac iTerm bash shell中的输出很奇怪。如何清洁?

来自分类Dev

Bash脚本,命令结束后更新输出

来自分类Dev

当可以在我的bash中执行命令时,Bash脚本找不到命令

来自分类Dev

命令执行后如何保持Bash运行?

来自分类Dev

bash提示中的颜色弄乱了git输出

来自分类Dev

我可以编辑bash shell命令吗?

来自分类Dev

如何持续监视shell命令的输出?我应该使用Bash还是Ruby?

来自分类Dev

解析在bash shell中设置颜色的文本

来自分类Dev

重置Bash中的元素

来自分类Dev

在Bash中完成命令后连续重新执行命令

来自分类Dev

从bash中的循环执行python的输出

来自分类Dev

从makefile中的bash命令输出创建变量

来自分类Dev

如何在bash中对齐命令输出

来自分类Dev

bash与zsh中的comm命令输出