【问题标题】:Changing my PROMPT_COMMAND adds a new line更改我的 PROMPT_COMMAND 会添加一个新行
【发布时间】:2016-05-11 13:42:04
【问题描述】:

我在~/.bashrc 文件中添加了以下行来更改我的标签标题:

export PROMPT_COMMAND='echo -e "\033];My Machine\007"'

获取文件后,我的提示符会在每个命令后添加一个新的空白行。例如:

user machine ~:> pwd
/a/path/whatever

user machine ~:>

我不希望出现第三个空白行。我已经测试了我的.bashrc 是否有PROMPT_COMMAND 行,我知道这是有问题的行。有什么想法吗?

【问题讨论】:

  • 在我看来你实际上想要改变PS1:export PS1="My Machine \W:> "

标签: bash terminal .bash-profile iterm2


【解决方案1】:

试试这个:

export PROMPT_COMMAND='echo -en "\033];My Machine\007"'

【讨论】:

    【解决方案2】:

    如果您的echo 支持,则创可贴修复是使用echo -en(禁止换行)。

    我认为这里没有必要使用PROMPT_COMMAND,您可以将其添加到您的PS1

    PS1="\[\033]0;My Machine\007\007\]$PS1"
    

    \[ \] 确保它们之间的宽度不会影响行长计数。

    有预定义的转义序列,因此您不必对机器名称进行硬编码,请参阅the manual。比如这个

    PS1="\[\e]0;\u@\h: \w\a\]$PS1"
    

    使用\e\a 代替\033\ 和\007 用于转义和响铃,并将标签标题设置为user@hostname: currentdir

    另请参阅 relevant section in the Bash Prompt HOWTOXterm title HOWTO

    【讨论】:

    • 为什么PS1 超过PROMPT_COMMAND
    • 更简单,不必为每个新提示执行命令...?
    • 我对@9​​87654339@ 的选择与我遇到的另一个问题有关:superuser.com/questions/1073607/…
    • @smilebomb 我你绝对需要PROMPT_COMMAND,那么只需使用-en 就可以解决你的问题。
    猜你喜欢
    • 2016-11-28
    • 2023-01-25
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    相关资源
    最近更新 更多