#macos #nsuserdefaults
#macos #nsuserdefaults
Вопрос:
Прямо сейчас я могу заполнить ключ записи по умолчанию элементами массива следующим образом:
defaults write mydomain mykey -array A B C D
Интересно, как я могу сделать то же самое, когда элементы считываются из файла, что-то в этом роде:
defaults write mydomain mykey -array < filename
Комментарии:
1. Простой ответ
defaults write mydomain mykey -array $(cat filename)
, но это не сработает, если элементы содержат какие-либо забавные символы (пробелы, все, что похоже на подстановочные знаки имени файла) Или включают синтаксис (кавычки, экранирование и т. Д.). В каком формате находится файл?2. @GordonDavisson как вы думаете, как нужно будет отформатировать файл, чтобы загрузить запись по умолчанию со словарем вместо массива?
3. При таком подходе это должно быть
key1 value1 key2 value2 ...
— но это кажется действительно хрупким. Я не думаю, что я бы рекомендовал пытаться загружать словарь непосредственно из файла.4. пока это работает хорошо для моих нужд. Я помещаю «keyx valuex» каждый в отдельную строку, и они загружаются правильно. Спасибо