Bash_profile别名会产生意外的EOF和语法错误

时间:2014-05-30 12:39:24

标签: bash keyboard osx-mavericks .bash-profile

我正在尝试在Mac Mini的Mavericks(10.9.3)的TextEdit中的.bash_profile中添加以下别名:

alias proj="cd ~/documents/google\ drive/web/projects"

我收到以下错误:

line 1: unexpected EOF while looking for matching '"'

line 2: syntax error: unexpected end of file

bash给出:

alias proj='"cd'

但是,如果我复制&将完全相同的一行从我的Windows VM中的记事本粘贴到TextEdit中就可以了。

bash现在按预期给出:

alias proj='cd ~/documents/google\ drive/web/projects'

我尝试过以下方法但没有成功:

  • 包含和不包含空格的不同路径

  • 交换了我用于Mac的戴尔PC键盘

  • 将英语改为英国英语

  • 安装所有更新

我可以使用copy& amp;粘贴如上,但真的想深究它。任何想法都非常感谢,谢谢。

2 个答案:

答案 0 :(得分:1)

这是一个引用问题。尝试:

alias proj="cd ~/documents/'google drive'/web/projects"

在评估alias命令时,将删除双引号。 处理“proj”调用时,将删除单引号。 在别名评估时删除了原始反斜杠。 你也可以加倍反斜杠:

alias proj="cd ~/documents/google\\ drive/web/projects"

适合我。打开命令跟踪(设置-x),看看到底发生了什么。

$ cat xx ; source xx ; proj ; pwd
alias proj="cd $HOME/workspace/'google drive'/web"
/home/sciadmin/workspace/google drive/web

P.S。我理智地检查了“$ HOME”和“〜”的等价性作为别名。工作正常,所以用〜代替$ HOME将在上面的例子中起作用。

好的,这是符号链接的结果:

$ . xx ; cat xx ; proj ; pwd ; pwd -P
alias proj="cd ~/workspace/'google drive'/web"
/home/sciadmin/workspace/google drive/web
/home/sciadmin/workspace/foo bar/web

我想你可能没有使用BASH。

答案 1 :(得分:-1)

我在textedit和bash上遇到了一些问题。检查textedit首选项' GENERAL'并选择纯文本,然后关闭智能引号和智能短划线。

如果那样做不行 - 那么,遗憾的是,我是Sans Clue。