2013-05-02 37 views
0

我想將我的bash提示符的構造移動到可以模塊化構建的函數中。問題是,我無法弄清楚如何讓函數的結果被解釋。如何在函數中生成PS1(轉義問題)

例子:

function build_prompt { 
    echo "\@" 
} 
export PS1="\$(build_prompt)" 

我的提示總是顯示爲\@,但應該是當前時間。

當然有圍繞這個特定的例子的方法,但我想要一個通用的解決方案,所以我可以將它用於其他轉義組件,如顏色。

+1

爲什麼不直接設置並從函數中導出PS1? – cdarke 2013-05-02 16:35:56

+0

因爲提示中的組件可能會在每次顯示時發生變化(例如,如果我在git倉庫中,而不是其他項目,則顯示關於git的分段)。 – 2013-05-02 17:14:04

回答

1

這是PROMPT_COMMAND變量的一個用例:在顯示提示更新PS1的值之前運行函數。

function build_prompt { 
    PS1='\@' 
} 
PROMPT_COMMAND='build_prompt'