不同的初始 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它们呢?

相关内容