看板 Linux 關於我們 聯絡資訊
之前有請教過如何修改命令提示字元。後來知道是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://www.ptt.cc/bbs/Linux/M.1491756733.A.B17.html
ckc1ark: PROMPT_COMMAND可以試試 04/10 01:00
chababa: 寫個function在PS1內呼叫即可 04/10 12:26
hijkxyzuw: 可以啊,像 PS1="`pwd` `date -I`" 04/10 20:54
hijkxyzuw: 好像不行欸…,但我記得有人做過。 04/10 20:55
jmlntw: 二樓正解,寫成 function 呼叫就好。 04/10 21:17
jmlntw: PS1="$(function_name)" 這樣 04/10 21:18
hijkxyzuw: 可是我像打 PS1="$(date)" 出來的日期不會更新 04/10 21:48
jmlntw: 已經印在螢幕上的當然就不會更新了啦。 04/10 22:06
losepacific: 是不是要用單'而不是",比如說PS1='$(date)' 04/11 03:17
hijkxyzuw: 樓上正確,用雙引號會被立即求值。 04/11 14:07
ericj: 你要不要直接試oh-my-zsh...都幫你用好了... 04/11 20:33
pizzahut: 寫成shell script可能可以? 04/12 10:33
MOONRAKER: `pwd`當然馬可以 我自己寫sh+python這樣呼叫也可以 04/13 14:03
LIAR: function感覺好有趣,但是要寫在哪裡? 04/22 13:53
MOONRAKER: 偷懶可以直接寫在.bashrc裡 或者另寫一檔在.bashrc裏面 04/24 12:27
MOONRAKER: 用source讀取 04/24 12:29
LIAR: 我有寫過C語言的function,但這個真的不曉得要怎麼呼叫耶 04/30 11:28