2015-06-27 42 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'。我已經更新了我的答案。 –