gpt4 book ai didi

git-bash - Git Bash如何在终端中执行命令后删除空行

转载 作者:行者123 更新时间:2023-12-04 01:00:26 25 4
gpt4 key购买 nike

我将 Windows 版本的 Git Bash 更新到 3.0.2,现在遇到了一个很烦人的问题,很难解释。在终端中,每条命令执行完后,总会自动添加一个新的空行,例如:

User@path $ CMD-1
<<-- new line
User@path $ CMD-2
<<-- new line
User@path $ CMD-3
<<-- new line
User@path $

它显示如下图:
enter image description here

我的问题是如何删除这种类型的命令尾新行?

更进一步,哪个源文件在每个命令执行后添加这些尾部新行?因为我几乎检查了所有与 PS1 相关的文件和输入,但我仍然无法弄清楚为什么会出现这种愚蠢的功能。非常感谢您的帮助。

最佳答案

这是由于您的 PS1配置了shell变量。

如果您在 Git Bash 中运行以下命令,它将打印 $PS1 的当前值多变的:

echo "$PS1"

例如,默认值 $PS1在我的电脑上设置为:

\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$
^^ ^^


注:由于我使用的是早期版本的 Git Bash,您的显示将与上面显示的有所不同。但是,需要注意的是两个换行符 \n (我添加了插入符号 ^^ 来清楚地表明它们)。您的值(value) $PS1可能只有一个换行符 \n .

本质上,正是这些/这个换行符 ( \n ) 字符在运行命令后产生了空白换行符。

解决方案:

要删除“command-tail new line”,请考虑运行以下复合命令:
echo $'\n'"export PS1='${PS1//\\n/}'" >> ~/.bash_profile

说明:
  • 这实质上是向其中任何一个添加了新代码;
  • 您现有的结束 .bash_profile 启动文件(如果该文件已经存在于您的 HOME 目录中)。
  • 或者在开头新建一个.bash_profile主目录中的文件(如果该文件尚不存在)。

  • 例如,您的 .bash_profile文件现在将包含一行,内容如下:

    export PS1='<newvalue>'

  • 添加到 .bash_profile 的行利用 export $PS1 定义一个新值外壳变量。 <newvalue>部分实际上是您当前的 PS1 值减去任何换行符 \n人物。
  • 阅读 ${PS1//\\n/} 的部分在上述复合命令中使用 parameter expansion从当前 $PS1 中删除所有换行符值(value)。

  • 运行上述复合命令后,下次创建新 session (即创建新窗口或重新启动 Git Bash)时,应该解决“command-tail new line”问题。

    编辑:更改 PS1 git-prompt.sh 中的值文件:

    如果您不想覆盖默认值 PS1使用上述解决方案的值,您可以更改 git-prompt.sh 中的值Git Bash 在安装过程中创建的文件。

    去做这个:
  • 打开名为 git-prompt.sh 的文件在您的代码编辑器中。该文件通常位于:
    C:/Program Files/Git/etc/profile.d/git-prompt.sh
  • 查找换行符的实例,即 \n并删除它们。

    例如;我的 git-prompt.sh文件包含几行,内容如下:
    PS1="$PS1"'\n'

    我简单删除了'\n'部分,以便他们阅读:
    PS1="$PS1"
  • 保存您对 git-prompt.sh 所做的更改文件,然后创建一个新 session (即创建一个新窗口,或重新启动 Git Bash)。
  • 关于git-bash - Git Bash如何在终端中执行命令后删除空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637705/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com