Вам не потрібно нічого фантазії, у вас вже є відповідь. Спробуйте:
open /Applications/Foo.app bar.pdf
на редагування
Зважаючи на коментарі нижче, я думаю, що моя відповідь все ще буде відносно схожою ... Я би зробив функцію, яка перекриває перегляд, робить pushd /Applications
, дзвонить /usr/bin/open $appName.app $args
, робить popd і повертається.
Я засмоктую сценарій оболонки, але щось на кшталт нижче, яке охоплює особливі випадки, і дозволяє вам використовувати майже той самий синтаксис, що і яблуко для відкритих. Мені подобається підтримувати своє оточення максимально чистим.
Я впевнений, що синтаксис з космосу:
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
. Тож манкофф, мабуть, має найпростіше рішення і повинен змінити свій коментар на відповідь;)
open -a Skim foo.pdf
.