Getting the bundle identifier of an OS X application in a shell script
Solution 1:
How about reading the bundle identifier from the application's Info.plist file directly using PlistBuddy (8):
/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Safari.app/Contents/Info.plist
Solution 2:
mdls -name kMDItemCFBundleIdentifier -r SomeApp.app
Solution 3:
Use lsappinfo
CC@~ $ lsappinfo info -only bundleid Finder
"CFBundleIdentifier"="com.apple.finder"
To get only the bundleid value, add | cut -d '"' -f4
to that command
CC@~ $ lsappinfo info -only bundleid Finder | cut -d '"' -f4
com.apple.finder
You don't have to handle your code with the path of that application, even the path changes.
As long as the application is started, you got an value.
Though it is not as fast as @surry's answer, but it's fast enough.