当前位置: 首页 > 知识库问答 >
问题:

(Mac)-bash:__git_ps1:找不到命令

晁开宇
2023-03-14

我正试图在终端更改我的命令promt。我不断得到错误:

-bash:__git_ps1:command未找到

我已经尝试过了,只需按如下方式将其键入终端:__git_ps1。我也在.bash_profile中试用过它

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi

正如您可能能够看到/告诉,是的,我确实安装了自动完成,它确实工作得很好!

alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi

下面是更改后的错误输出:

sed:(%s):没有这样的文件或目录

注意:我也把别名移到了源下面,没有什么不同。我有git版本1.7.12.1

编辑10/13/12

不,我绝对不想自己定义__git_ps1,只是想看看这样做是否能识别它。是的,我已经安装了.git-completion.bash文件。以下是我如何在我的机器上自动完成。

cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash

然后,ls-la列出.git-completion.bash文件。

if [ -f ~/.git-prompt.sh ]; then
  source ~/.git-prompt.sh
  export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi

共有1个答案

花永昌
2023-03-14

您已经从master安装git-completion.bash的版本--在Git的开发历史中,这是在将__git_ps1函数从完成功能拆分到一个新文件(git-prompt.sh)之后进行的。引入此更改并解释其基本原理的提交是AF31A456。

我仍然建议您只需编写与Git安装绑定的git-completion.bash(或git-prompt.sh)版本。

但是,如果出于某种原因,您仍然希望通过使用从master单独下载的脚本来使用此功能,则应该类似地下载git-prompt.sh:

curl -o ~/.git-prompt.sh \
    https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh

...并将以下行添加到~/.bash_profile:

source ~/.git-prompt.sh

那么包含__git_ps1'%s'ps1变量应该可以正常工作。

 类似资料:
  • 问题内容: 我在修复此bash脚本中的错误时遇到问题,我真的不知道我做错了什么,感谢您的任何帮助,谢谢 问题答案: 在 之前和 之后 添加一个空格。

  • 问题内容: 我正在尝试通过nodeschool.io练习。我在运行他们的软件包时遇到了麻烦。 我安装的第一个软件包: 使用以下命令运行软件包 我尝试在其站点上安装的所有其他软件包,但无法在命令行中使用正确的命令运行该程序,例如: 这是我在示例中尝试安装的软件包的链接:functional-javascript- workshop 如您所见,我收到消息 查看其他存在类似问题的帖子,我运行以下命令以查

  • 我正在努力完成nodeschool.io练习。我在运行他们的包时遇到了麻烦。 我安装的第一个软件包: 使用命令 在他们的站点上,我尝试安装的每个其他软件包都无法使用命令行中的正确命令运行程序,例如: 下面是我试图在示例中安装的包的链接:functional javascript workshop 如您所见,我收到消息 查看其他有类似问题的帖子,我运行了以下命令以查看我的路径和保存包的位置: 我尝试

  • 编辑添加到.bashrc后,打开terminal时返回此输出

  • 问题内容: 我正在编写一个Shell脚本,在其中设置几个变量,其值是命令的输出。 我得到的错误是: 现在,我确实阅读了其他类似的问题,并在此基础上尝试了多种方法: 将命令分为两个调用 尝试使用反引号 尝试使用 但是在每种情况下,命令输出都会执行。如何使其停止执行命令输出并仅将其存储为变量?我需要这个来处理ZSH和BASH。 问题答案: 您可以使用或定义变量。 因此,您必须删除前导符号和周围的任何其

  • 我使用的是Debian9.3。(拉伸)我无法运行“npm”命令。 节点-v的输出 nodejs-v的输出 输出为 我是Debian的新手,我不知道发生了什么 -我已重新安装节点。js -我已经试着按照官方页面的步骤操作了 -我已经运行了Output -我在Debian测试,在那里时也有同样的错误。 感谢阅读和帮助 -Melt