无法在 launchd plist 中引用 iCloud Drive

无法在 launchd plist 中引用 iCloud Drive

我已开始将 AppleScript 保存在脚本编辑器的 iCloud Drive 文件夹中,因为我经常喜欢在多台设备上重复使用或查看脚本。一般来说,我喜欢 iCloud Drive。但是,我遇到了一种不寻常的情况:我无法在 launchd plist 的 ProgramArguments 部分中成功使用这样的路径。

通常,路径采用以下形式 ~/Library/Mobile\ Documents/com\~apple\~ScriptEditor2/Documents/MyScript.scpt

但是我从日志中看到,当 launchd 尝试执行此路径时,该路径完全被破坏,结果当然是“没有这样的文件或目录”。我看到的是,第二个和第三个波浪号被动态替换为用户主文件夹的路径——从技术上讲,只有第一个波浪号才指代该路径。我尝试了各种方法来摆脱它,但都无济于事。

有什么想法可以解决这个问题吗?

答案1

您可以将通配符留给真正的 shell:

<key>ProgramArguments</key>
<array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>programToRun --arg1 --arg2 ~/relative\~path\~here</string>
</array>

相关内容