Dr.*_*ini 8 colors bash terminal centos
我需要捕获终端的屏幕截图,其中键入的命令在视觉上“脱颖而出”。现在我正在使用它来使我输入的命令变为“红色”:
PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;34m\]\$ \[\e[m\]\[\e[0;31m\]'
Run Code Online (Sandbox Code Playgroud)
问题是:提示后的一切都是红色的,不仅仅是我输入的文字

我怎样才能解决这个问题?
我正在使用 bash (CentOS 7)。
您可以使用陷阱来实现此目的:
trap 'echo -ne "\e[0m"' DEBUG
根据 bash 的人的说法:DEBUG执行上的陷阱
在每个简单命令、for 命令、case 命令、select 命令、命令的每个算术之前,以及在 shell 函数中执行第一个命令之前
所以每次执行命令时,shell 都会插入\e[0m禁用之前的颜色代码。一旦命令执行完毕,只能通过提示重新设置它。
我在这里找到了公认的黑客技巧:https ://wiki.archlinux.org/index.php/Color_Bash_Prompt#Different_colors_for_text_entry_and_console_output
| 归档时间: |
|
| 查看次数: |
4846 次 |
| 最近记录: |