用途:查询 macOS 通讯录(Contacts.app),通过 AppleScript 从命令行检索联系人。适合把电话号码反查为姓名、按姓名查找联系人信息,或搜索地址簿。
主要能力:支持按电话号码查询(只取姓名)、按姓名查询、列出全部联系人姓名,以及获取单个匹配联系人的完整信息(姓名、电话、邮箱)。姓名搜索不区分大小写,使用 contains 做部分匹配,需要精确匹配时可改用 is。
用法示例: 按电话只取姓名:osascript -e 'tell application "Contacts" to get name of every person whose value of phones contains "+1XXXXXXXXXX"' 按姓名只取姓名:osascript -e 'tell application "Contacts" to get name of every person whose name contains "John"' 列出全部:osascript -e 'tell application "Contacts" to get name of every person' 完整信息建议先取得匹配集合,再取第一项。资料明确提醒不要使用 first person whose,因其存在缺陷。资料中给出的完整信息写法为:osascript -e 'tell application "Contacts" set matches to every person whose value of phones contains "+1XXXXXXXXXX" if length of matches > 0 then set p to item 1 of matches return {name of p, value of phones of p, value of emails of p} end if end tell'(按姓名时将 phones 条件替换为 name contains "John" 即可)。
限制:电话查询要求精确字符串匹配,必须与通讯录中的存储格式完全一致;带 +1 前缀与不带前缀不通用,建议先用 +1 前缀尝试,失败再改用姓名搜索。输出为逗号分隔的姓名、电话、邮箱;无匹配时输出为空,而不是报错。运行环境限定为 macOS。其他细节(版本、权限设置、安装方式等)暂未提供。