私は、AppleScript をスクリプト エディタの iCloud Drive フォルダに保存し始めました。これは、複数のデバイスでスクリプトを再利用したり確認したりすることが多いためです。私は通常、iCloud Drive が大好きです。ただし、珍しいシナリオに遭遇しました。launchd plist の ProgramArguments セクションでそのようなパスを正常に使用できないのです。
通常、パスは次の形式をとります
~/Library/Mobile\ Documents/com\~apple\~ScriptEditor2/Documents/MyScript.scpt
しかし、ログを見ると、launchd がこれを実行しようとすると、このパスが完全に壊れてしまい、当然結果は「そのようなファイルまたはディレクトリはありません」となることがわかります。私が見ているのは、2 番目と 3 番目のチルダが、ユーザーのホーム フォルダーへのパスに動的に置き換えられているということです。技術的には、最初のチルダだけが参照するものです。これを回避するためにさまざまな方法を試しましたが、うまくいきませんでした。
この問題を回避する方法について何か考えはありますか?
答え1
グロブ処理は実際のシェルに任せることができます。
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>-c</string>
<string>programToRun --arg1 --arg2 ~/relative\~path\~here</string>
</array>