1

こんにちは、私は os x 用の小さなサービスに取り組んでいます。スクリプトでさらに使用するために、MobileMe アカウント名 (ユーザーが osx にログインしている場合) を取得するにはどうすればよいでしょうか?

4

2 に答える 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 にリンクされた ID dict を読み取り、次の要素は名前フィールドを見つけ、最後の要素はユーザーの .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 Sharing Certificate)有効な ID のリストを生成するには、その名前に含まれる ID から MobileMe ユーザー名を抽出できます。

sedこれを行うには、二重引用符の間の文字を出力しawk、ユーザー名のみを出力するために使用する醜いソリューションではありますが、この機能することしか思いつきませんでした。

security find-identity -v | grep MobileMe | sed -n 's/\(.*\)\"\(.*\)\"\(.*\)/\2/p' | awk '{print $1}'

(誰かがこれに対するよりエレガントな解決策を見つけたら、喜んで聞いてください!)

于 2011-03-28T17:03:56.923 に答える