首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于定义MobileMe帐户名并将其复制到剪贴板的Shell命令或脚本

用于定义MobileMe帐户名并将其复制到剪贴板的Shell命令或脚本
EN

Stack Overflow用户
提问于 2011-03-28 07:00:42
回答 2查看 295关注 0票数 1

你好,我正在为os x开发一个小服务,我想知道如何获取MobileMe帐户名(如果person已经登录osx),以便在脚本中进一步使用?

EN

回答 2

Stack Overflow用户

发布于 2011-03-29 01:55:18

下面的代码片段是否能满足您的要求?

代码语言:javascript
复制
dscl localhost -readpl /Local/Default/Users/$(id -un) dsAttrTypeNative:LinkedIdentity mac.com | grep -A1 '>name<' | sed -n 's/.*string>\(.*\)<\/string>.*/\1/p'

第一个元素从目录服务中读取发出请求的用户的mac.com链接身份字典,下一个元素找到name字段,最后一个元素获取用户的.mac名称并显示它。

要将其放入剪贴板,您可以发出该命令,其结尾如下:

代码语言:javascript
复制
dscl localhost -readpl /Local/Default/Users/$(id -un) dsAttrTypeNative:LinkedIdentity mac.com | grep -A1 '>name<' | sed -n 's/.*string>\(.*\)<\/string>.*/\1/p' | pbcopy

它将值复制到剪贴板中(我在前面的问题中遗漏了这一点)

票数 1
EN

Stack Overflow用户

发布于 2011-03-29 01:03:57

由于MobileMe将证书和公钥/私钥存储在密钥链中,因此您可以使用

代码语言:javascript
复制
security find-identity -v

要生成有效身份的列表,您可以从名称中包含(MobileMe Sharing Certificate)的身份中提取MobileMe用户名。

要做到这一点,我只能想出这样的解决方案:使用sed打印双引号之间的字符,使用awk只打印用户名:

代码语言:javascript
复制
security find-identity -v | grep MobileMe | sed -n 's/\(.*\)\"\(.*\)\"\(.*\)/\2/p' | awk '{print $1}'

(如果有人找到了更好的解决方案,我将很高兴听到!)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5453073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档