分页: 1 / 1

如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2009-03-08 9:12
dd_engi
我希望达到的效果时,使用bash时,命令行与命令的输出有颜色的区分,例如前者用颜色\[\e[1;37m\],后者则用\[\e[0m\]。请问应该怎样设置PS1、PROMPT_COMMAND之类的变量才能实现此效果呢?

谢谢 :em06

Re: 如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2009-03-12 23:07
lonelycorn
在.bashrc中有这个东东(差不多的),就是提示符
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
只要在$后面加上` echo -ne \033[36m` 之类的就可以实现
比如这样:
PS1='${debian_chroot:+($debian_chroot)}\u:\w\$$(echo -ne \033[36m)'

但是缺点就是没有关闭颜色的echo -ne \033[0m,所以如果你输入的程序没有输出的话后面的提示符全是这个颜色的。

Re: 如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2009-03-12 23:08
lonelycorn
等等,难道您就是传说中的dd大牛!
ORZ!

Re: 如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2009-03-14 1:51
dd_engi
lonelycorn 写了:在.bashrc中有这个东东(差不多的),就是提示符
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
只要在$后面加上` echo -ne \033[36m` 之类的就可以实现
比如这样:
PS1='${debian_chroot:+($debian_chroot)}\u:\w\$$(echo -ne \033[36m)'

但是缺点就是没有关闭颜色的echo -ne \033[0m,所以如果你输入的程序没有输出的话后面的提示符全是这个颜色的。
我当然知道这种方法么,想问的就是如何让改颜色的指令只影响输入命令的那一行么。。。

p.s. 我的确是以前搞OI现在搞ACM/ICPC的dd_engi :em02

Re: 如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2009-03-14 6:38
aerofox
用 zsh 吧,可在定义一个函数 preexec,在这个函数中关闭颜色。

Re: 如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2009-03-14 22:12
lonelycorn
那个,这个好办。你把PS(提示符)的颜色改了,输入的字符串颜色不变 不就行了吗~ :em05

Re: 如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2010-10-13 16:04
疯无可疯
我也想知道,哪位大侠指点一下吧?

Re: 如何控制bash中命令的颜色与输出的颜色不一样?

发表于 : 2010-10-13 16:23
eexpress
准备剥夺五颜六色的输出的穿衣的人权?