2015-06-27 44 views
0

我已经在我的.bashrc脚本如下:bash脚本与交互shell Mac OSx的矛盾行为?

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

当bash shell的初始化,它引发以下错误:

-a: not found 
Sublime Text 2' not found 

但是,如果我跑在终端下面,它按预期执行,并开辟了崇高:

open -a Sublime\ Text\ 2 

最后,当我把我的.bashrc脚本以下不抛出错误时,外壳被初始化...

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

...但它仍然抛出一个错误,当我在shell中运行sublime

'open: command not found 

为什么外壳之间的这种不同的行为,和bash脚本?谢谢。

+0

你在用什么外壳? echo $ SHELL – Mircea

+3

您是否复制并粘贴到问题中,或重新键入它?我怀疑你的.bashrc脚本中的''符号不是真的',而是一个印刷标记',它是你用一个文字处理器编辑你的.bashrc文件的结果。 – rici

+0

没有复制粘贴 - 我写了。 – Hunle

回答

1

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

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

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

+0

两者都不起作用。 @Unni,我试着如问题所示。而马特,虽然我看到你对双引号的观点,但它仍然不喜欢它:“-a:未找到”和“未找到Sublime Text 2”是消息。 – Hunle

+0

听起来在这种情况下,“开放”不知何故指的是别的东西。尝试明确使用'/ usr/bin/open'。我已经更新了我的答案。 –