有没有办法让命令行和输出显示不同的颜色?例如,我一直在使用 PS1 值,所以我的提示符是红色的,但我希望命令行是绿色的,输出是白色的(例如:如果我输入“ls”,它就是绿色的,然后文件列表是白色的)。
答案1
在 PS1 的末尾,使用转义序列设置输入的颜色。例如,
PS1="\h \w$ \e[0;32m"
(重要的是\e[0;32m
最后的部分(可以是任何颜色),其余的由你决定)
要设置不同的输出颜色,您需要“捕获”“DEBUG”信号并调用某个函数。这是我的
debug()
{
echo -n $'\e[0m';
}
trap debug DEBUG
它并不复杂,它只是确保每当您输入命令(导致 DEBUG 信号)时debug
都会调用该函数。
因此,只需将这些行复制到您的 .bash_profile 或 .bashrc 或您正在使用的任何文件中,然后将 '\e[0m' 更改为您喜欢的任何颜色。
答案2
您需要让 shell 或程序发出适当的转义序列来在您按下回车键后更改颜色。
当前 OS X 使用的 bash shell 没有明显的功能来执行此操作。
答案3
您可以绑定另一个键来发送转义序列和返回。
- 在终端的偏好设置中,单击“设置”窗格,然后单击“键盘”选项卡。
- 单击加号按钮。
- 选择修饰符和键。将动作设置为
send string to shell
并将字符串设置为\033[m\015
。单击“确定”。
您必须习惯使用该键盘快捷键而不是return...尽管可能有一个应用程序可以让您的系统return在终端中将其视为备用快捷方式。