每当我在某个应用程序中保存时,如何告诉 OS 10.9 执行某项操作?

每当我在某个应用程序中保存时,如何告诉 OS 10.9 执行某项操作?

每当我在特定应用程序中“保存”时,如何自动执行 shell 命令、AppleScript 或启动任务?

操作系统:小牛队

答案1

这个答案可能回答了你的问题 -Bash 脚本,监视文件夹,执行命令

这与运行 cron 差不多,因为脚本会休眠 2 秒并重新计算目录中文件的 MD5 哈希值。

如果你想要一个真正的事件驱动的解决方案,你可以尝试样本或任何其他使用的应用程序/库FS事件

答案2

您正在寻找WatchPaths的密钥launchd。在 中创建作业定义~/Library/LaunchAgents

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>local.convertToTxt</string>
        <key>Program</key>
        <string>/path/to/script</string>
        <key>WatchPaths</key>
        <array>
            <string>/path/to/directory</string>
        </array>
    </dict>
</plist>

棘手的部分是找出哪个文件已被修改。每次在此目录中创建或修改文件时都会触发该脚本,但launchd无法提供触发该操作的文件的线索。按创建日期 ( ls -t /path/to/directory | head -1) 对目录内容进行排序应该可以解决问题。另外,请确保将转换后的文件写入另一个目录。否则文件转换将再次触发脚本。

相关内容