欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

macos osascript -e 什么意思 deepseek chatgpt 有大用 有大大用

osascript -e 是 macOS 终端中的一个命令,用于执行 AppleScript 或 JavaScript (JXA) 代码片段。下面详细解释它的作用和使用方法:


语法解析

bash
osascript -e "代码"
  • osascript:macOS 的系统工具,用于运行 AppleScript 或 JavaScript (JXA) 脚本。

  • -e(即 -execute 的缩写):

    • 直接执行紧随其后的脚本代码(而非从文件加载)。

    • 可以多次使用 -e 来拼接多行代码(例如 osascript -e "代码1" -e "代码2")。


常见用途

  1. 执行 AppleScript 代码

    bash
    osascript -e 'tell application "Finder" to display dialog "Hello, macOS!"'
  • 弹出一个对话框显示 "Hello, macOS!"。

  • 执行 JavaScript (JXA) 代码

    bash
    osascript -l JavaScript -e 'Application("Finder").displayDialog("Hello from JXA!")'
    • 需通过 -l JavaScript 指定语言(默认是 AppleScript)。

  • 系统操作

    • 控制应用:

      bash
      osascript -e 'tell app "Safari" to activate'
    • 获取信息:

      bash
      osascript -e 'tell app "System Events" to get name of every process'
  • 与其他命令结合(如 curl

    bash
    osascript -e 'display notification "Download complete" with title "任务完成"'
    • 完成下载后发送通知。


    注意事项

    • 引号处理:如果脚本中包含引号,需根据 Shell 规则转义(例如用反斜杠 \" 或交替使用单/双引号)。

    • 多行代码:用多个 -e 拼接:

      bash
      osascript -e 'tell app "Finder"' -e 'display dialog "Multi-line example"' -e 'end tell'
    • 权限问题:某些操作(如控制应用)需在 系统设置 > 隐私与安全性 中授予终端权限。


    示例场景

    bash
    # 发送带声音的通知 osascript -e 'display notification "邮件已送达" with title "新邮件" sound name "Ping"' # 获取当前播放的歌曲(Music.app) osascript -e 'tell app "Music" to get name of current track'

    通过 osascript -e,你可以快速测试脚本或将其集成到 Shell 脚本中,实现高效的自动化操作。


    普通分类: