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'
成功保存的名称。我究竟做错了什么?
你已经回答了你的问题,包括一个双引号的唯一方法是逃避它。 –
我测试了你的脚本,它似乎工作,我只是'显示对话框引用的部分,然后在终端回显它,它的工作原理 –