2015-06-27 2 views
0

У меня есть следующий в моем .bashrc сценария:Противоречивое поведение в скрипте bash против интерактивной оболочки Mac OSx?

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

Когда Баш оболочка инициализирована, он выдает следующее сообщение об ошибке:

-a: not found 
Sublime Text 2' not found 

Однако, если я запускаю следующее в терминале, он выполняет, как ожидалось, и открывает Sublime:

open -a Sublime\ Text\ 2 

Наконец, когда я устанавливаю следующий в моем .bashrc сценарий не бросаться ошибка, когда оболочка инициализируется ...

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

... но он по-прежнему выдает ошибку при запуске sublime в оболочке:

'open: command not found 

Почему это различное поведение между оболочкой и Баш скрипт? Благодарю.

+0

какая оболочка вы используете? echo $ SHELL – Mircea

+3

Вы копировали и вставляли в вопрос или перепечатывали его? Я подозреваю, что «символ в вашем сценарии .bashrc на самом деле не является», а скорее типографской меткой, которая возникает из-за редактирования вашего .bashrc-файла текстовым процессором. – rici

+0

no copy paste - я написал это. – Hunle

ответ

1

Вам необходимо правильно указать команду. Попробуйте следующее:

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

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

+0

Ничего не работает. @Unni, я попробовал это, как показано в вопросе. И Мэтт, хотя я вижу вашу точку зрения о двойных кавычках, ей все равно не нравится: '-a: not found' и' 'Sublime Text 2" not found' являются сообщениями. – Hunle

+0

Похоже, что 'open' в этом контексте как-то ссылается на что-то другое. Попробуйте явно использовать '/ usr/bin/open'. Я обновил свой ответ. –

Смежные вопросы