Bash “为什么?”;dscl-更改/Users/wick RealName“;在终端中执行作业,但不在ScriptEditor中执行?

Bash “为什么?”;dscl-更改/Users/wick RealName“;在终端中执行作业,但不在ScriptEditor中执行?,bash,shell,terminal,applescript,dscl,Bash,Shell,Terminal,Applescript,Dscl,在终端中运行此命令时,与主文件夹“default”关联的用户的全名将从Brian更改为David 但是,当我尝试在ScriptEditor中运行此命令时,我得到一个语法错误 root# dscl . -change /Users/default RealName "Brian" "David" 关于如何更正这个问题,您有什么想法吗?第二个双引号打断了语法,因为它表示literal shell脚本参数的结尾。您甚至可以在源文本中看到它(语法突出显示) 我猜名字周围的双引号是不需要的,所以很简单

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

但是,当我尝试在ScriptEditor中运行此命令时,我得到一个语法错误

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


关于如何更正这个问题,您有什么想法吗?

第二个双引号打断了语法,因为它表示literal shell脚本参数的结尾。您甚至可以在源文本中看到它(语法突出显示)

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

do shell script "dscl . -change /Users/default RealName "Brian" "David""
但是,如果需要双引号,则必须将其转义

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

是的,谢谢!对esacpe的反斜杠和双引号解决了这个问题。该命令现在执行所需的操作,并且没有语法错误。此外,您也对了,名称周围的双引号是不需要的,parenthase也是不需要的。
do shell script "dscl . -change /Users/default RealName \"Brian\" \"David\""