不同的初始BASH提示


0

这在某种程度上是一个美观(和微不足道)的问题,但我想这对其他人可能比对我有用。我一直在玩〜/ .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,如果这有所不同。

这是可能吗?如果是这样,怎么样?


我回答了一个类似的问题,对garyjohn的回答有一个过于聪明的变化。
chepner 2013年

这可行,但我仍然希望我的PROMPT_COMMAND能够用于$ PS1的其他部分。
apottere 2013年

Answers:


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

这是我最终做的,但我只是在我的$ PS1中插入了一个变量,该变量被设置为第二个提示,然后继续存在。谢谢!
apottere 2013年

0

如果你想在第一个提示之前输出一些字符而不再输出,你为什么不.bashrc输出它们呢?


OP 在第一个提示中想要更少的字符,即在开头没有换行符。
garyjohn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.