我已經開始將 AppleScripts 儲存在腳本編輯器的 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>