您好,我正在为 os x 开发小服务,我想知道如何获取 MobileMe 帐户名称(如果用户已登录 osx)以便在脚本中进一步使用?
问问题
296 次
2 回答
1
以下代码段会按照您的要求执行吗?
dscl localhost -readpl /Local/Default/Users/$(id -un) dsAttrTypeNative:LinkedIdentity mac.com | grep -A1 '>name<' | sed -n 's/.*string>\(.*\)<\/string>.*/\1/p'
第一项从发出请求的用户的目录服务中读取 mac.com 链接身份字典,下一个元素找到名称字段,最后一个元素获取用户的 .mac 名称并显示它。
要将其放入剪贴板,请发出该命令,结尾如下:
dscl localhost -readpl /Local/Default/Users/$(id -un) dsAttrTypeNative:LinkedIdentity mac.com | grep -A1 '>name<' | sed -n 's/.*string>\(.*\)<\/string>.*/\1/p' | pbcopy
它将值复制到剪贴板(我在前面的问题中错过了那一点)
于 2011-03-28T17:55:17.910 回答
0
由于 MobileMe 将证书和公钥/私钥存储在钥匙串中,因此您可以使用
security find-identity -v
要生成有效身份列表,您可以从中提取 MobileMe 用户名的身份(MobileMe Sharing Certificate)
名称中的名称。
要做到这一点,我只能想出这个工作,虽然丑陋的解决方案,用于sed
打印双引号之间的字符并awk
只打印用户名:
security find-identity -v | grep MobileMe | sed -n 's/\(.*\)\"\(.*\)\"\(.*\)/\2/p' | awk '{print $1}'
(如果有人为此找到更优雅的解决方案,我很乐意听到!)
于 2011-03-28T17:03:56.923 回答