2011-04-29 69 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}\" ;}"