Как я могу передать «запись по умолчанию» из файла?

#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» каждый в отдельную строку, и они загружаются правильно. Спасибо