使用Shell脚本写入plist Dictionary子Boolean

时间:2013-02-15 21:44:53

标签: terminal boolean defaults

我正在尝试修改基于Platypus脚本的应用程序(Mac)中的系统plist,虽然我有一种感觉,我的问题可能有更一般的答案。

问题是:在plist文件中定位和修改Dictionary键的布尔子项的正确终端语法是什么?

我试过了:

sudo defaults write /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist com.github.norio-nomura.SIMBL-Agent Disabled -bool false

但它不喜欢带有禁用的-bool ..

2 个答案:

答案 0 :(得分:0)

我设法通过使用PlistBuddy来解决它。 PlistBuddy内置于MacOS X 10.5及更高版本中。

我本可以使用:

/usr/libexec/PlistBuddy -c "set :com.github.norio-nomura.SIMBL-Agent:Disabled bool" /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist

但它在.pkg安装程序中导致错误,因此我使用了:

/usr/libexec/PlistBuddy -c "Delete :com.github.norio-nomura.SIMBL-Agent" /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist

..然后:

/usr/libexec/PlistBuddy -c "Add :com.github.norio-nomura.SIMBL-Agent:Disabled bool" /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist

..之后似乎正在发挥作用。

答案 1 :(得分:0)

当SET值为时,PlistBuddy不需要输入

/usr/libexec/PlistBuddy -c "set :com.github.norio-nomura.SIMBL-Agent:Disabled true" /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist