~/.bash_aliases
我在哪里设置 PS1,并且包含在~/.bashrc
(默认设置)
# color PS1
PS1="\[\033[01;90m\]\D{%H:%M} \[\033[01;33m\]Ubuntu\[\033[00m\] \[\033[01;34m\]\w\[\033[01;35m\]$(__git_ps1) \[\033[01;36m\]\$\[\033[00m\] "
但是当我启动终端时出现错误__git_ps1: command not found
但是当我在 git 文件夹中运行功能手册$ __git_ps1
时,它会回显当前分支。
另外当我手动运行
$ PS1="\[\033[01;90m\]\D{%H:%M} \[\033[01;33m\]Ubuntu\[\033[00m\] \[\033[01;34m\]\w\[\033[01;35m\]$(__git_ps1) \[\033[01;36m\]\$\[\033[00m\] "
PS1 得到更新并且__git_ps1
部分被添加。
我自己没有安装。我只安装了git。
sudo apt install -y git
(git 版本 2.19.1)
__git_ps1
在( github/usr/lib/git-core/git-sh-prompt
上的文件)中定义
grep __git_ps1 ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2>/dev/null
只.bash_aliases
显示文件。
完整的 git-sh-promt grep 只返回二进制匹配
sudo grep 'git-sh-prompt' -nr /
这里有什么问题?
为了清楚起见,使用脱色版本:
双引号告诉 Bash 评估引号之间的内容,包括
$(__git_ps1)
, 但/usr/lib/git-core/git-sh-prompt
尚未获得来源,因此出现错误。只需将其更改为使用单引号,这将防止
$(__git_ps1)
在评估 PS1 之前被评估(即当交互式 shell 准备好输入并显示提示时)。转义美元符号也可以,但更难阅读:
顺便说一句,
~/.bash_aliases
它是为 shell 别名而设计的,所以它是一个奇怪的地方来放置你的PS1
. 就我个人而言,我会把它放进去~/.bashrc
。