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

Docker bash ENTRYPOINT命令的三重引号转义问题求助

Docker ENTRYPOINT 带单引号参数的转义解决方案

你的Dockerfile配置了ENTRYPOINT ["/bin/bash", "--login", "-c"],需要执行包含单引号的文件名的命令时,之前尝试的转义方式失效,核心原因是命令会经过两次解析:Docker命令行先解析一次,再交给bash -c内部解析。以下是两种可行的解决方式:

方式一:单引号拼接转义

在bash -c的命令字符串里,单引号无法直接在单引号内部转义,需要用'\''的组合来表示一个单引号(逻辑是:闭合当前单引号 → 输出一个转义的单引号 → 重新打开单引号)。

比如要打印文件名New York's Finest,执行命令:

docker run your-image 'echo '\''New York'\''\'\''s Finest'\'''

如果用双引号包裹整个命令,写法更简洁:

docker run your-image "echo 'New York'\''s Finest'"

方式二:ANSI-C转义字符串

利用bash的$'...'语法,内部的单引号可以用\'直接转义,同时要处理Docker命令行的转义:

docker run your-image $'echo \'New York\\\'s Finest\''

实际操作示例(如删除文件)

如果要删除名为New York's Finest的文件,命令可以写成:

docker run your-image "rm 'New York'\''s Finest'"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:16:03