LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 781|回复: 2

让Bash的每条命令都是不同的颜色

[复制链接]
发表于 2003-9-22 16:55:36 | 显示全部楼层 |阅读模式
我有这样的经历,运行一个命令后,有一个输出,
然后向上翻,找以前的输出,太多了,就分不清楚了。
在 BASH 下有一个 PROMPT_COMMAND 的变量,用于指向一个
命令,在打印 PS1, 和 PS2 的时候会调用他。
利用他,我做了一个例子。

myfunctions 的内容是
none="\033[0m"
black="\033[0;30m"
dark_gray="\033[1;30m"
blue="\033[0;34m"
light_blue="\033[1;34m"
green="\033[0;32m"
light_green="\033[1;32m"
cyan="\033[0;36m"
light_cyan="\033[1;36m"
red="\033[0;31m"
light_red="\033[1;31m"
purple="\033[0;35m"
light_purple="\033[1;35m"
brown="\033[0;33m"
yellow="\033[1;33m"
light_gray="\033[0;37m"
white="\033[1;37m"

mycolors[0]="$white"
mycolors[1]="$green"
mycolors[2]="$yellow"
mycolors[3]="$light_red"
mycolors[4]="$light_blue"
mycolors[5]="$light_purple"
mycolors[6]="$light_gray"
mycolors[7]="$light_cyan"
mycolors_len=7
mycolors_cur=0
function my_dynamic()
{
     echo -ne "${mycolors[$mycolors_cur]}"
     mycolors_cur=$((mycolors_cur + 1))
     mycolors_cur=$((mycolors_cur % mycolors_len))
}


在 ~/.bashrc 中加入

source myfunctions
export PROMPT_COMMAND='my_dynamic'

就可以了.
每次运行一个命令,就会改变提示行的颜色。

最好把背景颜色设置成黑色。
发表于 2003-9-22 20:13:23 | 显示全部楼层
我的PROMPT_COMMAND:
PROMPT_COMMAND='echo -ne "\033]0;${PWD}\007"'
让term软件的标题栏显示当前路径
 楼主| 发表于 2003-9-23 09:37:16 | 显示全部楼层
PS1='\w'
就可以显示全当前路径名称。
PS1='\W'
可以显示当前路径名称的 basename
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表