Вам не нужно ничего особенного, у вас уже есть ответ. Пытаться:
open /Applications/Foo.app bar.pdf
на редактировании
В свете комментариев ниже, я думаю, что мой ответ все еще будет относительно похожим ... Я бы сделал функцию, которая переопределяет open, выполняет pushd /Applications
, вызывает /usr/bin/open $appName.app $args
, выполняет popd и возвращает.
Я отстой от сценариев оболочки, но что-то вроде ниже, который охватывает особые случаи и позволяет вам использовать почти тот же синтаксис, что и Apple, предусмотренный для open. Мне нравится, чтобы моя среда была максимально чистой.
Я уверен, что синтаксис из космоса:
function open($appName, $args)
{
#if we are calling open without a path like /Applications/TextEdit.app AND
# $appName ends in '.app'
if (!hasParent($appName) && isApp($appName))
{
pushd /Applications
/usr/bin/open ${appName}.app $args &
popd
return
}
#otherwise, use open as normal
/usr/bin/open $appName $args
return
}
на втором редактировании
Если посмотреть на комментарий @ mankoff к исходному вопросу, большая часть описанной выше функции, вероятно, будет пустой тратой времени, поскольку вы можете просто ее использовать open -a $appName
. Так что у mankoff, наверное, самое простое решение, и он должен поменять свой комментарий на ответ;)
open -a Skim foo.pdf
.