登錄到根時,回顯時的默認提示是\s-\v\$
,顯示爲bash-4.2#
。我正在嘗試使用bash提示符來顯示工作目錄。 export PS1="\w \$"
。
提示顯示正確,但是,符號\$
不會轉變成一個#
,即使我的$UID
是0,這種失敗省略用戶符號\u
的目的。是否還有一些額外的東西需要添加,或者如果我導出它,該符號不起作用嗎?
登錄到根時,回顯時的默認提示是\s-\v\$
,顯示爲bash-4.2#
。我正在嘗試使用bash提示符來顯示工作目錄。 export PS1="\w \$"
。
提示顯示正確,但是,符號\$
不會轉變成一個#
,即使我的$UID
是0,這種失敗省略用戶符號\u
的目的。是否還有一些額外的東西需要添加,或者如果我導出它,該符號不起作用嗎?
export PS1="\w \$"
這不設置$PS1
到\w \$
,將其設置到\w $
,你可以看到,如果你鍵入:
echo "$PS1"
使用單引號:
export PS1='\w \$'
斜線將在「」中消失。只需要添加一個以保留它。 要麼
export PS1='\w \$'
或
export PS1="\w \\$"
爲你工作。
您可以結合''和'「。例如:
export PS1="\w blabla"'\$'
謝謝,我簡直不敢相信解決方案如此簡單!儘管如何正確解析「\ w」?幾乎每個符號(\ u,\ h,即使是顏色提示[\ 033 ...)都能在PS1提示符下正確運行。 – dook
@bark:可能是因爲'$'是雙引號內的特殊字符,所以'「\ $」'逃脫'$'所以這是一個文字上的'$'字符。我不確定所有的細節,但這似乎是一個似是而非的解釋。 –
在腳本中,'''引號不會被解析/展開:它的值被直接轉儲到變量中。該'「'報價被打解析/擴大,所以空間得到擴展,以'\','\ N'被擴大到一個新行等。由於'\ w'沒有一個‘特殊’的意思,'\'實際上已擴展爲'\\'來創建'\\ w',它被分配給變量作爲文字'\ w'。'\ $'確實具有「特殊」的含義,所以它變成了一個文字'$'。 – OnlineCop