考虑一个带有包含数组的dict的首选项plist:
让我们创建它:
defaults write org.my.test '{aDict = {anArray = ();};}'
Run Code Online (Sandbox Code Playgroud)
然后回过头来看看结构更好:
$defaults read org.my.test
{
aDict = {
anArray = (
);
};
}
Run Code Online (Sandbox Code Playgroud)
现在,如何anArray
使用defaults write
命令添加值?
我知道有一种-array-add
类型可以为数组添加值,但是如何指定数组元素的键路径?
我试过这个,但这不起作用:
defaults write org.my.test aDict.anArray -array-add "a value"
Run Code Online (Sandbox Code Playgroud)
实际上,我需要添加一个非字符串类型,所以我还需要能够指定类型,例如-bool YES
.
(注:我不能使用PlistBuddy也不plutil,因为这需要会影响到实际偏好)
使用plutil
,您的生活会更美好。默认值不支持键路径。
> defaults write org.my.test '{aDict = {anArray = ();};}'
> defaults read org.my.test
{
aDict = {
anArray = (
);
};
}
> plutil -insert aDict.anArray.0 -bool YES ~/Library/Preferences/org.my.test.plist
> defaults read org.my.test
{
aDict = {
anArray = (
1
);
};
}
Run Code Online (Sandbox Code Playgroud)
我过去defaults read
只是为了证明预期的输入是相同的,但是plutil -p ~/Library/Preferences/org.my.test.plist
如果您开始使用plutil
更多内容,您可能会改为使用读取文件。
归档时间: |
|
查看次数: |
3079 次 |
最近记录: |