bashrc 文件 - 定义函数以打印当前 Git 分支时"command not found"



当我将其保存到我的~/.bashrc文件中时,我在运行source~/.bahrc时出错?有人知道我在这里做错了什么吗?

# Git branch in prompt.
parse_git_branch () {
        git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* (.*)/1/'
}

错误

$ source  ~/.bashrc
: command not found
'bash: /Users/RGA/.bashrc: line 3: syntax error near unexpected token `{
'bash: /Users/RGA/.bashrc: line 3: `parse_git_branch () {

注意:我的~/.bash_profile中唯一的东西是:
源~/.bashrc

更新以包括BASH版本(OSX 10.9)

$ bash --version 
GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13)  
Copyright (C) 2007 Free Software Foundation, Inc.

错误输出有可疑之处。让我们看看前两个错误,并考虑一下您的文件的第一行有一个注释:

: command not found

这可能是什么命令?此处没有命令名。嗯…

'bash: /Users/RGA/.bashrc: line 3: syntax error near unexpected token `{

以及:为什么在行首有一个结束单引号,然后在行尾附近,就在大括号{之前有一个开始单引号(后)?

如果前三行中的每一行都以一个最不可见的字符结尾,当打印该字符时,告诉计算机移回当前行的第一个位置,会怎么样?让我们将这个假设的大部分不可见字符表示为r,它代表"导致位置返回行首的不可见字符"。那么找不到的命令就是这个不可见的字符r命令,并且由于大括号{后面跟有r,所以出现语法错误。

也许我们应该把这个字符写成^M,其中M代表"行首的运动"。也许你的前三行是而不是

# Git branch in prompt.
parse_git_branch () {

而是:

# Git branch in prompt.^M
^M
parse_git_branch () {^M

也许您应该使用不隐藏换行符n之前出现的回车r(也称为^M)的编辑器来查看该文件。

(如果你的编辑器是vim,你可以使用这个设置,有些人可能会称之为过度使用,但我喜欢它:

set ffs=unix " disable "file format = dos" detection

或者,您可以在打开文件后重新设置文件格式,这样vim就不会在每行末尾重新添加^M。如果你使用其他编辑器,看看如何让它停止使用DOS风格的自动换行。)

最新更新