不同的初始 BASH 提示符

不同的初始 BASH 提示符

這在某種程度上是一個裝飾性的(而且是微不足道的)問題,但我認為它對其他人可能比我更有用。我一直在我的 ~/.bashrc 中使用 $PS1 變量,我想知道是否有任何方法可以讓第一個提示與其他提示略有不同。更具體地說,到目前為止我有:

PS1='\n\[\e[0;37m\][\[\e[0;35m\]\t\[\e[0;37m\]] \[\e[0;36m\]\u@\h \[\e[0;37m\][\[\e[1;34m\]\W\[\e[0;37m\]] \[\e[0;36m\]\$ \[\e[0m\]'

但我不希望開頭的換行符號顯示在第一個提示上(我可以擴展它以使第一個提示包含更多資訊等)。我正在使用 gnome-terminal,如果這有什麼區別的話。

這是可能嗎?如果是這樣,怎麼辦?

答案1

一種方法是使用 bash 的 PROMPT_COMMAND。例如,您可以將以下內容放入 ~/.bashrc 中(或在實驗時在命令列執行它)。

set_ps()
{
    if [ -z "$PSFLAG" ]
    then
        # Set first prompt
        PS1='first prompt: '
        PSFLAG=1
    else
        # Set other prompt
        PS1='other prompt: '
    fi
}
PROMPT_COMMAND=set_ps

答案2

如果您希望在第一個提示之前輸出一些字元並且不再輸出,為什麼不直接輸出.bashrc它們呢?

相關內容