我有一些问题:
在 PC 上,我可以从环境变量中获取用户名
USERNAME
,在 LINUX 上USER
,那 MAC 上的对应内容是什么?可以通过注册表(或等效项)找到 Windows 上的用户本地区域,在 LINUX 上,您可以
~
在命令提示符下输入 - MAC 等效项是什么?
注意,如果可能的话,我想从环境变量中提取这些(从代码中)。
例如,我想在 MAC 上的用户主区域中创建一个文件 > 我该如何构建以下变量 -:
这就是我的想法 - 有人可以证实吗(请注意,我面前目前没有 MAC 可以进行测试...)
% e.g.
userName = getenv ( 'USER' );
userLocalArea = '~/Library/Preferences/';
filename = fullfile ( userLocalArea, userName );
最后,我使用的语言是 Matlab - 但这是一个非常普遍的问题......
答案1
您实际上并不需要用户名来将某些内容放入其主结构中。
只需启动~/
它就会直接进入他们的主页,所以~/Library/
会转到当前用户的
[Boot Drive]/Users/[User Name]/Library/
。
如果需要为所有用户安装,请使用/Library/
。
我猜这相当于 Windows 的%appdata%/
如果您确实需要名称和文件夹...
userName=$(logname)
or userName=$(user)
userLocalArea=$(home)
经过测试,似乎存在一些不一致之处 - 这些在终端中工作得更好……因为有些调用似乎在大写和小写中都不起作用,所以大写似乎是一个更安全的“规则”。比我聪明的人必须解释为什么有些在括号中有效而有些则不行。
userName=$LOGNAME
or userName=$USER
userLocalArea=$HOME
这将获得他们的简称和主文件夹
不确定如何在没有 osascript 的情况下获取长名称……
osascript -e "long user name of (system info)"
这一切都假设您的安装是由当前登录的用户完成的。