4

Я пытаюсь обновить файл plist, используя bash. Для некоторых строк я могу обновить файл plist, но для некоторых строк я получаю сообщение об ошибке. Например,

defaults write '/Users/test/Desktop/myPlist'  'My Key' "[My Value]"

выдает ошибку

2011-08-10 18:49:36.208 defaults[17287:903] Could not parse: [My Value].
Try single-quoting it.

Похоже, что символы '[' и ']', кажется, сбрасывают его. Как заставить это работать со строкой «[My Value]»?

3 ответа3

3

Вы можете попробовать заключить его в одинарные кавычки, например так:

defaults write '/Users/test/Desktop/myPlist'  'My Key' "\"[My Value]\""
1

Никакие скобки и кавычки не являются необходимыми и не являются допустимыми частями команды записи по умолчанию. Вот правильная команда записи по умолчанию, которая работает в скрипте bash:

defaults write com.apple.Safari Homepage "http://google.com/"

вот цикл по умолчанию команд записи, которые я использую для изменения пользовательских шаблонов в OS X:

for USER_TEMPLATE in "/System/Library/User Template"/*
do
    defaults write "${USER_TEMPLATE}"/Library/Preferences/com.apple.SetupAssistant DidSeeCloudSetup -bool TRUE
    defaults write "${USER_TEMPLATE}"/Library/Preferences/com.apple.desktopservices DSDontWriteNetworkStores true
    defaults write "${USER_TEMPLATE}"/Library/Preferences/.GlobalPreferences.plist AppleKeyboardUIMode -int 3
done

Итак, ваш пример правильно отформатированный будет выглядеть так:

defaults write /Users/test/Desktop/myplist MyKey MyValue

Конечно, вам нужно добавить соответствующие ключи, если вы хотите, чтобы ключ записывался как что-то отличное от строки - см. примеры выше для написания логических и целочисленных ключей.

Наконец, проверьте страницу man для команды по умолчанию - она отлично справляется со всем этим.

0

Вы можете выйти из скобок, заключив их в одинарные кавычки:

Вместо: по defaults write '/Users/test/Desktop/myPlist' 'My Key' "[My Value]"

Do: по defaults write '/Users/test/Desktop/myPlist' 'My Key' "'[My Value]'"

Обратите внимание на одинарные кавычки, добавленные в [My Value]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .