Почему "dscl . -Change /Users/wick RealName" выполняет работу в терминале, а не в ScriptEditor?
root# dscl . -change /Users/default RealName "Brian" "David"
При запуске этой команды в Терминале полное имя пользователя, связанного с домашней папкой "default", изменяется с Брайана на Дэвида.
Однако, когда я пытаюсь запустить эту команду в ScriptEditor, я получаю синтаксическую ошибку.
do shell script "dscl . -change /Users/default RealName "Brian" "David""
1 ответ
Решение
Вторая двойная кавычка нарушает синтаксис, потому что она указывает конец буквального аргумента сценария оболочки. Вы даже можете увидеть это в исходном тексте (подсветка синтаксиса).
Я думаю, двойные кавычки вокруг имен не нужны, так что это просто
do shell script "dscl . -change /Users/default RealName Brian David"
Однако, если требуются двойные кавычки, вы должны их избежать
do shell script "dscl . -change /Users/default RealName \"Brian\" \"David\""