104 lines
2.3 KiB
Markdown
104 lines
2.3 KiB
Markdown
![]() |
#ios
|
|||
|
|
|||
|
osascript 是 macOS 系统自带的 AppleScript 和 JavaScript 解释器,主要用于通过命令行执行自动化脚本操作。以下是关键信息:
|
|||
|
|
|||
|
### 核心功能
|
|||
|
|
|||
|
1. 执行 AppleScript
|
|||
|
|
|||
|
``` shell
|
|||
|
# 弹出对话框
|
|||
|
osascript -e 'display dialog "Hello macOS"'
|
|||
|
```
|
|||
|
|
|||
|
2. 运行 JavaScript (JXA)
|
|||
|
|
|||
|
``` shell
|
|||
|
# 使用 JavaScript 操作 Finder
|
|||
|
osascript -l JavaScript -e 'Application("Finder").emptyTrash()'
|
|||
|
```
|
|||
|
|
|||
|
3. 脚本文件执行
|
|||
|
|
|||
|
``` shell
|
|||
|
osascript /path/to/script.scpt
|
|||
|
```
|
|||
|
|
|||
|
### 典型应用场景
|
|||
|
|
|||
|
|
|||
|
```
|
|||
|
| 场景 | 示例命令 |
|
|||
|
|
|||
|
|---------------------|--------------------------------------------------------------------------|
|
|||
|
|
|||
|
| 系统控制 | osascript -e 'tell app "System Events" to shut down' |
|
|||
|
|
|||
|
| 应用自动化 | osascript -e 'tell app "Safari" to open location "https://example.com"'|
|
|||
|
|
|||
|
| 文件操作 | osascript -e 'tell app "Finder" to delete file "test.txt"' |
|
|||
|
|
|||
|
| 数据交换 | osascript -e 'text returned of (display dialog "输入内容" default answer "")' |
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
### 高级用法
|
|||
|
|
|||
|
1. 传递参数
|
|||
|
|
|||
|
``` shell
|
|||
|
osascript -e 'on run argv' -e 'return item 1 of argv' -e 'end run' -- "参数"
|
|||
|
```
|
|||
|
|
|||
|
2. 获取返回值
|
|||
|
|
|||
|
``` shell
|
|||
|
result=$(osascript -e 'return "输出内容"')
|
|||
|
echo $result # 输出:输出内容
|
|||
|
```
|
|||
|
|
|||
|
3. 与 Shell 脚本集成
|
|||
|
|
|||
|
``` shell
|
|||
|
# 获取当前WiFi名称
|
|||
|
wifi_name=$(osascript -e 'do shell script "networksetup -getairportnetwork en0 | cut -c 24-"')
|
|||
|
```
|
|||
|
|
|||
|
### 安全限制
|
|||
|
|
|||
|
- macOS 10.15+ 需要授权:
|
|||
|
|
|||
|
系统偏好设置 → 安全性与隐私 → 自动化
|
|||
|
|
|||
|
!自动化权限设置
|
|||
|
|
|||
|
- 敏感操作需终端授权:
|
|||
|
|
|||
|
``` shell
|
|||
|
# 首次执行会弹出权限请求
|
|||
|
osascript -e 'tell app "Terminal" to do script "echo hello"'
|
|||
|
```
|
|||
|
|
|||
|
### 性能对比
|
|||
|
|
|||
|
| 脚本类型 | 启动时间 | 内存占用 | 适用场景 |
|
|||
|
|
|||
|
|--------------|----------|----------|-----------------------|
|
|||
|
|
|||
|
| AppleScript | 快 | 低 | 系统级自动化 |
|
|||
|
|
|||
|
| JavaScript | 中 | 中 | 复杂数据处理 |
|
|||
|
|
|||
|
| Python | 慢 | 高 | 跨平台/复杂逻辑 |
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
### 替代方案
|
|||
|
|
|||
|
- Swift 脚本:性能更好,但学习成本高
|
|||
|
|
|||
|
- Python/Ruby:跨平台但需要环境配置
|
|||
|
|
|||
|
- Automator:图形化操作但灵活性低
|
|||
|
|
|||
|
建议:需要深度 macOS 集成时优先使用 osascript,跨平台需求则选择其他语言。
|