设置命令颜色?

设置命令颜色?

我想设置命令行颜色,使我键入的命令的颜色与其他命令的颜色不同。

这是我当前的PS1设置:
PS1="\n\[\e[1;33m\]\w\[\e[1;30m\] \D{%F %T}\[\e[0m\]\n\W $ \[\e[1;35m\] "

它给:

在此输入图像描述

我想要实现的是只有ls -al紫色(而不是接下来的所有内容)。

答案1

根据 Bash 的手册:

PS0
该参数的值被扩展(参见提示如下)并由交互式 shell 在读取命令之后和执行命令之前显示。

因此,您可以在修复命令提示符的PS0同时选择颜色输出。PS1例如使用您的PS1和以下内容PS0

PS1="\n\[\e[1;33m\]\w\[\e[1;30m\] \D{%F %T}\[\e[0m\]\n\W $ \[\e[1;35m\] "
PS0="\[\e[0m\]"

将产生紫色命令提示符和标准白色输出。请注意,具有内置颜色输出的命令会覆盖由 固定的颜色PS0

或者你可以使用tput在 中设置颜色PS0。以下是用于tput将命令输出设置为白色的示例:

PS0="\[$(tput setaf 7)\]"

这是一个基于 Bash 的答案,但我相信其他 shell 也使用PS1PS0

相关内容