1

我设置了这样的 bash 提示符:

PS1='\W\[\e[31m\]$(git branch &>/dev/null; if [ $? -eq 0 ]; then \
  echo " $(git branch | grep '^*' |sed s/\*\ //)"; fi)'

我想将其设为默认值,以免每次打开终端时都输入它。(我使用的是 OSX lion / 终端版本 2.2.1)


解决方案:我按照 Hai Vu 的建议将 PS1=... 行放在 ~/.bash_profile 中。

谢谢大家的答案

4

3 回答 3

3

PS1=...线放进去~/.bash_profile,它应该可以工作。

于 2012-09-19T20:17:30.587 回答
0

通常,还要查找 /etc/profile、/etc/bashrc、~/.sh_profile 或 ~/.profile(通常对于 root 是 .profile,对于非 root 是 .bash_profile)等。在各种版本的 bash和主机平台,成功命中可能会有所不同:)理论上,bashrc和bash_profile(shrc,sh_profile)用于不同的目的,rc文件用于shell配置,而profile用于与shell本身无关的各种设置,它们按固定顺序处理,包括系统范围和每个用户的配置。

而且我不确定,如果执行诸如“git”之类的外部命令并通过管道连接到 sed、grep 等是否明智地使用提示设置。

于 2012-09-19T16:13:03.790 回答
0

免责声明:我对 OSX 一无所知...

正如我在评论中所说,您的~/.bashrc文件是放置命令的地方。

根据调用 shell 的方式,您可能需要将以下行添加到文件中~/.bash_login

if [ -f ~/.bash_login ]; then
    . .bashrc
fi

再说一次,不要自己做 sed-thingie 将 git-branch 名称放入提示符中。从这里使用惊人的 bash 脚本。

顺便说一句,这就是我的提示的样子(使用上面的脚本):

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h\[\e[31m\] $(__git_ps1 "%s") \[\e[0m\]\[\e[33m\]\w\[\e[0m\]\n\$ '
于 2012-09-20T09:06:22.043 回答