Bash
自定義我的 PS1 或一般 Bash 提示時遇到問題
我在 Linux Mint 20.1 Cinnamon 中,這次並不重要,
我無法自定義我的 PS1,或者通常 Bash 提示為最後一個字元
$
(使用者)著色;#
(根)。目前 PS1 程式碼在
.bashrc
:if [ "$color_prompt" = yes ]; then color_red=$(tput bold)$(tput setaf 1) color_green=$(tput bold)$(tput setaf 2) color_reset=$(tput sgr0) PS1='${debian_chroot:+($debian_chroot)}\u @ \h $PWD $color_green\$$color_reset ' else PS1='${debian_chroot:+($debian_chroot)}\u @ \h $PWD \$ ' fi
問題描述:
當我啟動終端
gnome-terminal
(我無法解釋,你可以嗎?我究竟做錯了什麼?
PS:我不確定為什麼它是單引號,如果我可以將它改為雙引號……
失敗#2
剛剛嘗試將其“轉換”為雙引號格式,這在多次更新歷史記錄時再次導致麻煩。
PS1="\u @ \h \[\$PWD\] \[$(tput bold)\]\[$(tput setaf 2)\]\\$\[$(tput sgr0)\] "
失敗#3
我現在開始放棄了,我最後的機會是直接使用轉義序列,如下所示:
PS1='\u @ \h $PWD \e[1;32m\$ \e[0m'
如前所述,它會使我的終端出現亂碼,我目前正在將其設置為沒有顏色才能工作。
PS1='${debian_chroot:+($debian_chroot)}\u @ \h $PWD \[$color_green\]\$\[$color_reset\] '
請參閱我的這個答案。您需要包裝
\[
\]
任何不可列印的序列,僅此而已。列印的片段(即添加到提示的長度)不應該被包裝。在您的嘗試中,您要麼包裹得太少(什麼都沒有),要麼包裹得太多(
$PWD
)。