为什么 "dscl . -change /Users/wick RealName" 在终端而不是在脚本编辑器中完成工作?

Why does "dscl . -change /Users/wick RealName" do the job in Terminal but not in ScriptEditor?

root# dscl . -change /Users/default RealName "Brian" "David"

当 运行 在终端中执行此命令时,与主文件夹 "default" 关联的用户的全名从 Brian 更改为 David。

然而,当我尝试 运行 在 ScriptEditor 中执行此命令时,出现语法错误。

do shell script "dscl . -change /Users/default RealName "Brian" "David""


关于如何更正此问题的任何想法?

第二个双引号破坏了语法,因为它表示文字 shell 脚本参数的结尾。您甚至可以在源文本中看到它(语法高亮显示)。

我猜名字周围的双引号是不需要的,所以它很简单

do shell script "dscl . -change /Users/default RealName Brian David"

但是,如果需要双引号,则必须转义它们

do shell script "dscl . -change /Users/default RealName \"Brian\" \"David\""