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

Sublime Text构建系统JSON嵌套shell命令转义问题

问题:Sublime Text构建系统嵌套引号转义失败的解决办法

我为Sublime Text编写的构建系统JSON代码原本运行正常:

"shell_cmd": "osascript -e 'tell application \"Terminal\" to do script \"ssh root@1.2.3.4 \"'"

现在需要给ssh命令添加-t 'ls -la; bash -l'参数,尝试用\'转义单引号后,Sublime Text不接受:

"shell_cmd": "osascript -e 'tell application \"Terminal\" to do script \"ssh root@1.2.3.4 \'ls -la; bash -l\'\"'"

互换双引号和单引号的方式也无法正常运行,但以下命令在终端中可以正常执行:

osascript -e 'tell application "Terminal" to do script "   ssh root@1.2.3.4 -t \"ls -la; bash -l\"  "  '

解决办法

Sublime构建系统的JSON配置中,字符串需要遵循JSON的转义规则。终端中能运行的命令里的\",在JSON的shell_cmd中需要再转义一次,也就是写成\\\"。

正确的配置代码如下:

"shell_cmd": "osascript -e 'tell application \"Terminal\" to do script \"ssh root@1.2.3.4 -t \\\"ls -la; bash -l\\\"\"'"

原理:JSON会先解析\\\"为\",传递给shell后就和终端中正常运行的命令格式一致,完美解决嵌套引号的转义冲突问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:36:04