0
我已看過此主題:single quote escaping in applescript/shell儘管它很有幫助,但它並不能完全解決我的問題。這AppleScript的片段說明了這個問題:如何在appleScript/shell中轉義單引號?
set lastName to "O'Donnell"
set lastScript to "/usr/libexec/PlistBuddy /Users/david/.name.plist -c 'Set Last '" & quoted form of (lastName & "'")
display dialog lastScript
do shell script lastScript
在我的家鄉文件夾中的屬性列表文件「.name.plist」中包含的關鍵‘最後一個’存儲的名稱‘奧唐奈’。變量lastScript傳遞爲:
/usr/libexec/PlistBuddy /Users/david/.name.plist -c 'Set Last ''O'\''Donnell'\'''
腳本執行,但「最後一個」設置爲「奧唐奈」沒有切身撇號。這表現在外殼運行此命令:
/usr/libexec/PlistBuddy /Users/david/.name.plist -c 'Print Last'
PlistBuddy可以在交互模式下運行:
/usr/libexec/PlistBuddy /Users/david/.name.plist
命令:
'Set Last O\'Donnell'
成功保存的名稱。我究竟做錯了什麼?
你已經回答了你的問題,包括一個雙引號的唯一方法是逃避它。 –
我測試了你的腳本,它似乎工作,我只是'顯示對話框引用的部分,然後在終端回顯它,它的工作原理 –