bash PS1 终端提示符中出现不必要的空间 [已关闭]

Unnecessary Space showing up in bash PS1 Terminal Prompt [closed]

提问人:OmegaBumBum 提问时间:11/16/2023 最后编辑:OmegaBumBum 更新时间:11/17/2023 访问量:63

问:


这个问题似乎与特定的编程问题、软件算法或程序员主要使用的软件工具无关。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释在哪里可以回答该问题。

3天前关闭。

我有一个脚本,其中包含以下内容:.bashrc

source ~/.git-prompt.sh

peng=""
lmda="󰘧"
brch="󰘬"
sect=""

FMT_BOLD="\[\e[1m\]"
FMT_DIM="\[\e[2m\]"
FMT_RESET="\[\e[0m\]"
FMT_UNBOLD="\[\e[22m\]"
FMT_UNDIM="\[\e[22m\]"
FG_BLACK="\[\e[30m\]"
FG_BLUE="\[\e[34m\]"
FG_CYAN="\[\e[36m\]"
FG_GREEN="\[\e[32m\]"
FG_YELLOW="\[\e[33m\]"
FG_GREY="\[\e[37m\]"
FG_MAGENTA="\[\e[35m\]"
FG_RED="\[\e[31m\]"
FG_WHITE="\[\e[97m\]"
BG_BLACK="\[\e[40m\]"
BG_BLUE="\[\e[44m\]"
BG_CYAN="\[\e[46m\]"
BG_GREEN="\[\e[42m\]"
BG_YELLOW="\[\e[43m\]"
BG_MAGENTA="\[\e[45m\]"

PS1="${BG_BLUE}${FG_GREEN}${FMT_BOLD} ${peng} \d ${FG_WHITE}\t ${FG_BLUE}"
PS1+='$(__git_ps1 "' # check if git branch exists
PS1+="${BG_MAGENTA}${sect} " # end FILES container / begin BRANCH container
PS1+="${FG_WHITE}${brch} %s ${FG_MAGENTA}" # print current git branch
PS1+='")'
PS1+="${BG_GREEN}${sect}${FG_BLUE} \w ${FMT_RESET}${FMT_BOLD}${FG_GREEN}${sect} "
PS1+="${FG_GREEN}${lmda}"
PS1+="${FMT_RESET}"
export PS1

我目前面临一个问题,即我在终端提示符中有一个额外的空格,我认为那里不会有空格(在 git 分支部分内)Terminal Prompt

系统是 Ubuntu (WSL) 20.04.6 LTS。

有人对可能导致这种情况或任何潜在补救措施的原因有任何想法吗?谢谢

编辑: 我很感激你的反馈。在创建“最小可重复样品”的过程中,我发现了解决方案。这是由角色引起的,可能是间距问题。我把它换成了另一个角色。${brch}

我会确保在正确的堆栈交换平台上发布此内容,我很抱歉。

bash git ubuntu

评论

5赞 Benjamin W. 11/17/2023
您能否将其简化为仍然有相同问题的更小版本的提示?
2赞 shellter 11/17/2023
不是就在那里吗?<<< (-;?实际上,我看到了其他嵌入的空格(&我很惊讶你的最终提示中没有更多的空格(或者,显然,我遗漏了一些东西(-; )。这些应该如何工作?我看不出目的。祝你好运!PS1+="${BG_MAGENTA}${sect} ""${FG_WHITE}${brch} %s ${FG_MAGENTA}""${BG_GREEN}${sect}${FG_BLUE} \w ${FMT_RESET}${FMT_BOLD}${FG_GREEN}${sect} "
4赞 Charles Duffy 11/17/2023
无论如何,Stack Overflow 的范围仅限于软件开发,而不是交互式 shell 的使用和配置——考虑 Unix 和 Linux,因为交互式 shell 问题更热门(但他们和我们一样想要一个最小的可重现示例,所以“具有相同问题的较小版本”请求适用于任何一个站点——删除所有看起来像你期望的提示部分, 只留下错误或使错误可见所必需的部分)。
0赞 wjandrea 11/17/2023
@shellter 是的,你错过了:)该部分是命令替换,例如 .无论如何,这是题外话。我只是想提一下,以避免 OP 感到困惑。$(__git_ps1 "...")
0赞 shellter 11/17/2023
@wjandrea : 啊,是的,我现在看到了,3行下来。哎呀!

答: 暂无答案