sh/bash/dash/ksh/zsh等Shell脚本
-
dd_engi
- 帖子: 10
- 注册时间: 2006-10-11 13:58
#1
帖子
由 dd_engi » 2009-03-08 9:12
我希望达到的效果时,使用bash时,命令行与命令的输出有颜色的区分,例如前者用颜色\[\e[1;37m\],后者则用\[\e[0m\]。请问应该怎样设置PS1、PROMPT_COMMAND之类的变量才能实现此效果呢?
谢谢

-
lonelycorn
- 帖子: 438
- 注册时间: 2007-05-20 18:44
- 来自: 唐山,河北,中国
-
联系:
#2
帖子
由 lonelycorn » 2009-03-12 23:07
在.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,所以如果你输入的程序没有输出的话后面的提示符全是这个颜色的。
我逗无了奈了……
HP的本跑ubuntu还得把我折腾死。
显卡、无线/有线网卡、声卡、键盘……
代码: 全选
while :
do
work_hard
done
-
lonelycorn
- 帖子: 438
- 注册时间: 2007-05-20 18:44
- 来自: 唐山,河北,中国
-
联系:
#3
帖子
由 lonelycorn » 2009-03-12 23:08
等等,难道您就是传说中的dd大牛!
ORZ!
我逗无了奈了……
HP的本跑ubuntu还得把我折腾死。
显卡、无线/有线网卡、声卡、键盘……
代码: 全选
while :
do
work_hard
done
-
dd_engi
- 帖子: 10
- 注册时间: 2006-10-11 13:58
#4
帖子
由 dd_engi » 2009-03-14 1:51
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

-
aerofox
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
#5
帖子
由 aerofox » 2009-03-14 6:38
用 zsh 吧,可在定义一个函数 preexec,在这个函数中关闭颜色。
-
lonelycorn
- 帖子: 438
- 注册时间: 2007-05-20 18:44
- 来自: 唐山,河北,中国
-
联系:
#6
帖子
由 lonelycorn » 2009-03-14 22:12
那个,这个好办。你把PS(提示符)的颜色改了,输入的字符串颜色不变 不就行了吗~

我逗无了奈了……
HP的本跑ubuntu还得把我折腾死。
显卡、无线/有线网卡、声卡、键盘……
代码: 全选
while :
do
work_hard
done
-
疯无可疯
- 帖子: 64
- 注册时间: 2009-03-13 21:27
#7
帖子
由 疯无可疯 » 2010-10-13 16:04
我也想知道,哪位大侠指点一下吧?
大道至简,大象无形。
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#8
帖子
由 eexpress » 2010-10-13 16:23
准备剥夺五颜六色的输出的穿衣的人权?
● 鸣学