You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppleScript报错‘Expected end of line but found “{”’的原因及解决方法

解决AppleScript调用Terminal执行find脚本的语法错误

问题原因

报错Expected end of line but found “{”的核心原因是:

  1. AppleScript对字符串内部双引号的转义规则和Shell不同,你误用了Shell的反斜杠转义方式;
  2. find命令-exec参数结尾的分号未在AppleScript字符串中正确转义。

修正后的代码

tell application "Terminal"
    do script "find . -maxdepth 1 -type d -exec sh -c 'echo \"{}: $(ls -1 \"\"{}\"\" | wc -l) file(s)\"' \\;"
end tell

关键修改细节

  • 转义内部双引号:将原代码中的\"{}\"替换为\"\"{}\"\"。AppleScript用双引号包裹字符串,内部要表示单个双引号必须写两个连续双引号,这样传递给Shell后才会解析为正确的"{}"。
  • 转义find的结束分号:把原代码末尾的;改成\\;。AppleScript中反斜杠本身需要转义,所以两个反斜杠最终会被解析为一个反斜杠,传递给Shell的就是find命令要求的\;。

效果验证

修正后的代码会让Terminal执行和你手动运行完全一致的find命令,同时避免AppleScript的语法解析错误。

内容的提问来源于stack exchange,提问作者AlekNaomie BurtPilon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:43:10