Macos 从bash脚本在OSX上查找用户库文件夹?

Macos 从bash脚本在OSX上查找用户库文件夹?,macos,bash,Macos,Bash,显然,在OSX中找到存储应用程序数据的位置的正确方法是调用ObjectiveC NSArray* theDirs = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask] 通常,这将返回/Users//Library/Application Support 我如何从bash脚本中获得它?是的,我知道我可以这么做 DIR="${

显然,在OSX中找到存储应用程序数据的位置的正确方法是调用ObjectiveC

NSArray* theDirs = [[NSFileManager defaultManager] 
    URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask]
通常,这将返回
/Users//Library/Application Support

我如何从bash脚本中获得它?是的,我知道我可以这么做

DIR="${HOME}/Library/Application Support"
但这并不是正确的方法。你应该询问操作系统,这样它才能给你实际的目录。(例如,可能在网络上?)

是的,我想我可以编写一个小的ObjectiveC应用程序来返回该路径,但我假设必须有一种标准的方法来实现这一点?

一种方法是使用及其助手应用程序。允许您从命令行运行AppleScript:

DIR="$(osascript \
      -e 'tell application "System Events"' \
      -e 'get POSIX path of (path to application support folder from user domain)' \
      -e 'end tell')"
echo $DIR

--> /Users/nad/Library/Application Support

如何
set | grep DIR
从环境中获取特殊目录设置列表。这可能会导致您找到一种在脚本中使用的特定环境设置的方法?Linux使用了几个DIR设置,但我还没有使用OSX来比较它偏离了多远。我还将检查一个配置,该配置包含的信息允许您通过解析/重新映射适当的配置来捕获该信息。好主意,但“库/应用程序支持”不会显示在
集的输出中,也不会显示在
导出的输出中(环境变量)。值得一试。总有一天我将不得不尝试OSX(或其他任何东西),它没有必要告诉系统事件;只需“获取POSIX路径”行即可。