当我将其保存到〜/ .bashrc 文件时,运行 source~ / .bashrc 时出错?谁知道我在这里做错了什么?
# Git branch in prompt.
parse_git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}
ERROR
$ 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.
答案 0 :(得分:2)
错误输出存在可疑之处。让我们看看前两个错误,并考虑一下这样一个事实,即您的文件的第一行是注释:
: 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
也许你应该使用一个编辑器查看该文件,该编辑器不会隐藏在换行符\r
之前发生的回车^M
(又名\n
)。
(如果您的编辑器是vim
,您可以使用此设置,有些人可能称之为矫枉过正,但我喜欢这样:
set ffs=unix " disable "file format = dos" detection
或者您可以在文件打开后设置文件格式,以便vim
不会在每行末尾重新添加^ M.如果您使用其他编辑器,请了解如何使其停止自动DOS样式的行结束。)