2011-04-29 59 views
0

是否有人知道如何通过shell脚本在cmd下执行?是否有人如何通过shell脚本执行此cmd?

#!/bin/sh 

USERNAME="XYZ" 

defaultCmd=`defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions "{ \"USERNAME\" = \"${USERNAME}\" ;}" ` 

其中write com.apple.Xcode是.plist文件。上述命令在终端上完美工作。

+0

您从脚本中运行哪些错误消息?尝试用'\(... \)'转义'(,)'字符。祝你好运。 Posgt你的实际的shell脚本,或者把set -vx设置为在你输入的行之前进行调试,然后在它之后设置+ vx。 – shellter 2011-04-29 13:14:56

+0

@shelter:更新原始文章 - 它只在上面的文件中写入一个常量。在通过终端执行脚本后,不要发生任何错误/异常,但常量值不会写入** com.apple.Xcode **文件中。 – Deminem 2011-04-29 13:25:21

+0

我以前没有戴过眼镜。所以它是{}字符。我不认为有必要逃避它们。抱歉,分心。为什么你将输出捕获到变量defaultCmd?如果你想执行'defaults write',在你的scriptFile中删除defaultCmd = \'和关闭\'并且看看是否有效。哪个外壳? Bash或ksh还是? – shellter 2011-04-29 14:03:09

回答

1

@shelter是正确的 - 上述命令不带'...'运行,不应该在脚本中捕获任何值。但有一点需要注意,脚本不应该以“root”用户身份运行,否则该命令将不起作用。

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions "{ \"USERNAME\" = \"${USERNAME}\" ;}"