Я хочу проверить, существует ли Foo.app перед тем, как я позвоню:
$ open -a Foo.app bar
Какой путь поиска использует open для поиска Foo.app? Я знаю, что он должен включать / Applications, что означает, что это не $ PATH.
Я бы искал его, используя mdfind, а затем использовал полученный путь (если есть), чтобы открыть его:
mdfind
# use head to pick the first one, replace with your favorite algorithm FOOPATH=`<b>mdfind "kMDItemContentTypeTree == 'com.apple.application-bundle'wc && kMDItemDisplayName == 'Foo'wc"</b> | head -n 1` if [ -d $FOOPATH ]; then <b>open $FOOPATH</b> else echo Opps fi