2014-05-01 24 views
4

登錄到根時,回顯時的默認提示是\s-\v\$,顯示爲bash-4.2#。我正在嘗試使用bash提示符來顯示工作目錄。 export PS1="\w \$"

提示顯示正確,但是,符號\$不會轉變成一個#,即使我的$UID是0,這種失敗省略用戶符號\u的目的。是否還有一些額外的東西需要添加,或者如果我導出它,該符號不起作用嗎?

回答

6
export PS1="\w \$" 

這不設置$PS1\w \$,將其設置到\w $,你可以看到,如果你鍵入:

echo "$PS1" 

使用單引號:

export PS1='\w \$' 
+0

謝謝,我簡直不敢相信解決方案如此簡單!儘管如何正確解析「\ w」?幾乎每個符號(\ u,\ h,即使是顏色提示[\ 033 ...)都能在PS1提示符下正確運行。 – dook

+0

@bark:可能是因爲'$'是雙引號內的特殊字符,所以'「\ $」'逃脫'$'所以這是一個文字上的'$'字符。我不確定所有的細節,但這似乎是一個似是而非的解釋。 –

+1

在腳本中,'''引號不會被解析/展開:它的值被直接轉儲到變量中。該'「'報價被打解析/擴大,所以空間得到擴展,以'\','\ N'被擴大到一個新行等。由於'\ w'沒有一個‘特殊’的意思,'\'實際上已擴展爲'\\'來創建'\\ w',它被分配給變量作爲文字'\ w'。'\ $'確實具有「特殊」的含義,所以它變成了一個文字'$'。 – OnlineCop

1

你可以使用這個:

export PS1="\w \\$" 

我不知道它爲什麼起作用。但它的工作原理。我原本在這裏看到:cyberciti

1

斜線將在「」中消失。只需要添加一個以保留它。 要麼

export PS1='\w \$' 

export PS1="\w \\$" 

爲你工作。

您可以結合''和'「。例如:

export PS1="\w blabla"'\$' 
相關問題