[问题] 命令提示字符有办法加判断式吗?

楼主: LIAR (玻璃做的大叔)   2017-04-10 00:52:08
之前有请教过如何修改命令提示字符。后来知道是PS1的参数,譬如我用
PS1='[\D{%M:%S} \e[1;34m\u\e[0m \e[1;45m$?\e[0m \e[1;32m\W\e[0m]\$ '
就会变成
[46:47 root 0 ~]#
这样,可以看看执行前后的时间差,还有error code之类的,算是个人兴趣。
我想请问的是,有办法让error code的表现根据数字不同而改变吗?
譬如说$?==0,就不要有背景,或是根本不显示。如果$?不等于0,就会高亮显示。
请问这能办到吗?
作者: ckc1ark (伪物)   2017-04-10 01:00:00
PROMPT_COMMAND可以试试
作者: chababa (洽八八)   2017-04-10 12:26:00
写个function在PS1内呼叫即可
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-04-10 20:54:00
可以啊,像 PS1="`pwd` `date -I`"好像不行欸…,但我记得有人做过。
作者: jmlntw (吉米林)   2017-04-10 21:17:00
二楼正解,写成 function 呼叫就好。PS1="$(function_name)" 这样
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-04-10 21:48:00
可是我像打 PS1="$(date)" 出来的日期不会更新
作者: jmlntw (吉米林)   2017-04-10 22:06:00
已经印在萤幕上的当然就不会更新了啦。
作者: losepacific (Losepacific)   2017-04-11 03:17:00
是不是要用单'而不是",比如说PS1='$(date)'
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-04-11 14:07:00
楼上正确,用双引号会被立即求值。
作者: ericj (lalala)   2017-04-11 20:33:00
你要不要直接试oh-my-zsh...都帮你用好了...
作者: pizzahut (...)   2017-04-12 10:33:00
写成shell script可能可以?
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-04-13 14:03:00
`pwd`当然马可以 我自己写sh+python这样呼叫也可以
楼主: LIAR (玻璃做的大叔)   2017-04-22 13:53:00
function感觉好有趣,但是要写在哪里?
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-04-24 12:27:00
偷懒可以直接写在.bashrc里 或者另写一档在.bashrc里面用source读取
楼主: LIAR (玻璃做的大叔)   2017-04-30 11:28:00
我有写过C语言的function,但这个真的不晓得要怎么呼叫耶

Links booklink

Contact Us: admin [ a t ] ucptt.com