首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在终端执行命令后删除空行

如何在终端执行命令后删除空行
EN

Stack Overflow用户
提问于 2019-10-31 06:09:27
回答 1查看 3K关注 0票数 5

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

代码语言:javascript
复制
User@path $ CMD-1
                         <<-- new line
User@path $ CMD-2
                         <<-- new line
User@path $ CMD-3
                         <<-- new line
User@path $

它显示的就像这幅画:

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

而且,在每个命令执行之后,哪个源文件正在添加这些尾-新行?因为我几乎检查了所有与PS1和输入相关的文件,但是我仍然不知道为什么会发生这种愚蠢的特性。非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-11-04 09:38:29

这是由PS1 shell变量的配置方式造成的。

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

代码语言:javascript
复制
echo "$PS1"

例如,我的计算机上$PS1的默认值设置为:

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

注意:Your将与上面显示的不同,因为我使用的是Git的早期版本。但是,重要的是要注意的是两个换行符\n (我添加了插入符号^^来明确表示它们)。$PS1的值可能只有一个换行符\n

从本质上讲,这些/这个换行符(\n)在运行命令后生成空白换行符。

解决方案:

要删除“命令尾新行”,请考虑运行以下复合命令:

代码语言:javascript
复制
echo $'\n'"export PS1='${PS1//\\n/}'" >> ~/.bash_profile

Explanation:

  • 这在本质上增加了新代码;
代码语言:javascript
复制
1. The end of your existing [`.bash_profile`](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Bash-Startup-Files) startup file (if the file _does_ already exists in your [`HOME`](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#index-HOME) directory).
2. Or at the beginning of a newly created `.bash_profile` file in your home directory (if the file _does not_ already exist). 

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

export PS1='<newvalue>'

  • 添加到.bash_profile中的行利用export$PS1 shell变量定义一个新值。实际上,<newvalue>部件将是当前PS1值减去任何换行符\n字符的值。
  • 在上述复合命令中读取${PS1//\\n/}的部分使用参数展开从当前$PS1值中删除所有换行符。

运行上述复合命令后,“命令尾新行”问题应在下次创建新会话时解决(即创建新窗口或重新启动Git Bash)。

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

如果不希望使用上述解决方案覆盖默认的PS1值,则可以更改Git在安装期间创建的git-prompt.sh文件中的值。

为此,请执行以下操作:

  1. 在代码编辑器中打开名为git-prompt.sh的文件。该文件通常位于: C:/Program Files/Git/etc/profile.d/git-prompt.sh
  2. 查找换行符的实例,即\n并删除它们。 例如,我的git-prompt.sh文件包含几行内容如下: PS1=“$PS1”‘n’ 我简单地删除了'\n'部分,使它们读到: PS1="$PS1“
  3. 保存对git-prompt.sh文件所做的更改,然后创建一个新会话(即创建一个新窗口,或重新启动Git )。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58637705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档