bash 脚本与交互式 shell Mac OSx 中的矛盾行为?

Contradictory behavior in bash script versus interactive shell Mac OSx?

我的 .bashrc 脚本中有以下内容:

alias sublime='open -a Sublime\ Text\ 2' 

初始化bash shell时,抛出以下错误:

-a: not found
Sublime Text 2' not found

但是,如果我 运行 在终端中执行以下操作,它会按预期执行并打开 Sublime:

open -a Sublime\ Text\ 2

最后,当我在我的 .bashrc 脚本中放置以下内容时,它不会在初始化 shell 时抛出错误...

alias sublime='open\ -a\ Sublime\ Text\ 2' 

...但是当我在 shell:

中 运行 sublime 时它仍然会抛出错误
'open: command not found

为什么 shell 和 bash 脚本之间存在这种不同的行为?谢谢。

您需要正确引用命令。试试这个:

alias sublime='/usr/bin/open -a "Sublime Text 2"'