2014-01-24 123 views
0

我只是乱搞苹果脚本跟我的朋友开玩笑。我让这个简单的终端命令看起来像他们的计算机被黑客攻击(他们很容易)。我打算将它编译成苹果脚本中的应用程序,但是当我编译它时,我仍然收到语法错误。我试图修复它,但无济于事。我刚刚学习苹果脚本,所以这可能是一个愚蠢的菜鸟问题。谢谢! 〜科尔苹果脚本错误

下面是脚本:

tell application "Terminal" 
do script "while (true) do echo -n "Error: System Breach Detected 190721064281 killing proccesses. 12060219682197312-90785236412412001-612073412-712481243261=1123-0914712-1209412107381\][12389138719 End."; done" 
activate 
end tell 

回答

1

你试图巢另一双引号字符串("while (true) do...)内的双引号字符串("Error: System Breach...),但报价没有窝。当AppleScript看到"while (true) do echo -n "Error时,它认为它看到一个双引号字符串,后面跟着Error这个词,这没有任何意义。

要解决这个问题,可以用反斜杠(\)转义内部双引号 - AppleScript将在解析字符串时删除转义符,因此它们不会传递给shell并将其混淆。但还有一个问题:在字符串中间还有一个零散的逃逸(反斜杠),这也会混淆AppleScript。为了做到这一点,你实际上需要逃避逃跑(\\)。以下是添加必要转义的结果:

tell application "Terminal" 
    do script "while (true) do echo -n \"Error: System Breach Detected 190721064281 killing proccesses. 12060219682197312-90785236412412001-612073412-712481243261=1123-0914712-1209412107381\\][12389138719 End.\"; done" 
    activate 
end tell