1

DEFAULT_VALUE_PLACEHOLDERコマンドラインツールを使用して、次のplistのの値を変更したいdefaults

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>DefaultValue</key>
            <string>DEFAULT_VALUE_PLACEHOLDER</string>
            <key>Type</key>
            <string>PSTitleValueSpecifier</string>
            <key>Title</key>
            <string>Version</string>
            <key>Key</key>
            <string>prefs_item_version_title</string>
        </dict>
    </array>
    <key>StringsTable</key>
    <string>Root</string>
</dict>
</plist>

簡単な検索と置換でそれができることはわかっていますが(sedなど)、もっと堅牢な方法が必要です。

このようなものだと思いますが、構文のドキュメントは十分ではありません。

defaults write $PLIST_PATH  'PreferenceSpecifiers { 1 = { DefaultValue = $NEW_DETAULT_VALUE; }; }'
4

1 に答える 1

3

これを行う方法はないと思いますdefaults(完全に醜いわけではありません)。代わりに、PlistBuddyを使用してこのようなことを行う方がよいでしょう。

/usr/libexec/PlistBuddy -c "set :PreferenceSpecifiers:0:DefaultValue '$NEW_DEFAULT_VALUE'" "$PLIST_PATH"

とは異なりdefaults、PlistBuddyは、指定したファイル名に「.plist」が含まれていることを期待していることに注意してください。また、(上記のように)配列インデックスは0から始まります。

于 2013-01-16T15:49:34.833 に答える