Macos 如何创建可以在OSX中编辑plist的脚本

Macos 如何创建可以在OSX中编辑plist的脚本,macos,scripting,Macos,Scripting,因此,我每天都在手动修改plists(我在OSX 10.9上),我决定创建一个脚本来自动完成这项工作 经过进一步研究,我发现我可以创建一个.command文件来在一个可双击的文件上执行命令 现在,我不确定如何检查plist中的字符串,如果找到了,如何替换它。有什么建议吗 提前谢谢 这里有两个相关的命令:defaults和/usr/libexec/PlistBuddydefaults实际上是为管理首选项设置而设置的,而PlistBuddy是一个更通用的plist工具。例如,要检查和设置停靠方向(显

因此,我每天都在手动修改plists(我在OSX 10.9上),我决定创建一个脚本来自动完成这项工作

经过进一步研究,我发现我可以创建一个.command文件来在一个可双击的文件上执行命令

现在,我不确定如何检查plist中的字符串,如果找到了,如何替换它。有什么建议吗


提前谢谢

这里有两个相关的命令:
defaults
/usr/libexec/PlistBuddy
defaults
实际上是为管理首选项设置而设置的,而
PlistBuddy
是一个更通用的plist工具。例如,要检查和设置停靠方向(显示在屏幕的哪一侧),可以使用:

oldOrientation=$(defaults read com.apple.dock orientation)
defaults write com.apple.dock orientation "$newOrientation"
PlistBuddy
版本相比:

oldOrientation=$(/usr/libexec/PlistBuddy -c "print :orientation" ~/Library/Preferences/com.apple.dock.plist)
/usr/libexec/PlistBuddy -c "set :orientation '$newOrientation'" ~/Library/Preferences/com.apple.dock.plist
如本例所示,
PlistBuddy
的语法更笨拙、更详细。。。但如果你想做一些非平凡的事情,它也会更强大

  • 虽然可以为
    defaults
    提供不在~/Library/Preferences文件夹中的plist文件的完整路径,但它总是在文件名后附加“.plist”,因此如果您使用的文件没有扩展名,
    defaults
    将被禁用
  • PlistBuddy
    可以轻松深入到plist文件中的数组和字典中;例如,要获取dock右侧第一个永久条目的URL,只需参考
    :persistent others:0:tile data:file data:\u CFURLString
    。(注意数组是0索引的,所以
    :persistent others:0
    是第一个元素,
    :persistent others:1
    是第二个元素,以此类推)。大概是这样的:

    fileURL=$(/usr/libexec/PlistBuddy -c "print :persistent-others:0:tile-data:file-data:_CFURLString" ~/Library/Preferences/com.apple.dock.plist)
    
    …这并不是默认值所能做到的