[問題] 命令提示字元有辦法加判斷式嗎?

作者: 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