作者LIAR (玻璃做的大叔)
看板Linux
標題[問題] 命令提示字元有辦法加判斷式嗎?
時間Mon Apr 10 00:52:08 2017
之前有請教過如何修改命令提示字元。後來知道是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,就會高亮顯示。
請問這能辦到嗎?
--
起初,他們追殺共產主義者,我沒有說話,因為我不是共產主義者;
接著,他們追殺猶太人,我沒有說話,因為我不是猶太人;
後來,他們追殺工會成員,我沒有說話,因為我不是工會成員;
此後,他們追殺天主教徒,我沒有說話,因為我是新教教徒;
最後,他們奔我而來,卻再也沒有人站起來為我說話了。
《First They Came(他們首次來時)》,Martin Niemoller牧師(1892-1984)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.47.36
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1491756733.A.B17.html
1F:推 ckc1ark: PROMPT_COMMAND可以試試 04/10 01:00
2F:→ chababa: 寫個function在PS1內呼叫即可 04/10 12:26
3F:推 hijkxyzuw: 可以啊,像 PS1="`pwd` `date -I`" 04/10 20:54
4F:→ hijkxyzuw: 好像不行欸…,但我記得有人做過。 04/10 20:55
5F:推 jmlntw: 二樓正解,寫成 function 呼叫就好。 04/10 21:17
6F:→ jmlntw: PS1="$(function_name)" 這樣 04/10 21:18
7F:推 hijkxyzuw: 可是我像打 PS1="$(date)" 出來的日期不會更新 04/10 21:48
8F:→ jmlntw: 已經印在螢幕上的當然就不會更新了啦。 04/10 22:06
9F:推 losepacific: 是不是要用單'而不是",比如說PS1='$(date)' 04/11 03:17
10F:→ hijkxyzuw: 樓上正確,用雙引號會被立即求值。 04/11 14:07
11F:推 ericj: 你要不要直接試oh-my-zsh...都幫你用好了... 04/11 20:33
12F:推 pizzahut: 寫成shell script可能可以? 04/12 10:33
13F:→ MOONRAKER: `pwd`當然馬可以 我自己寫sh+python這樣呼叫也可以 04/13 14:03
14F:→ LIAR: function感覺好有趣,但是要寫在哪裡? 04/22 13:53
15F:→ MOONRAKER: 偷懶可以直接寫在.bashrc裡 或者另寫一檔在.bashrc裏面 04/24 12:27
16F:→ MOONRAKER: 用source讀取 04/24 12:29
17F:→ LIAR: 我有寫過C語言的function,但這個真的不曉得要怎麼呼叫耶 04/30 11:28