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

shlex对带转义引号的字符串解析异常问题咨询

shlex对带转义引号的字符串解析异常问题咨询

我最近在做一个程序,需要把命令传递到远程主机,用到了Python的shlex库来解析参数——就是为了防止把未闭合引号的命令发出去,结果遇到了一个让我困惑的行为:

先看符合我预期的正常情况:
当我解析一个未闭合的普通引号字符串时,shlex会正确抛出错误,拦截不合法的输入:

>>> lexer = shlex.shlex('"aaaaaaaaaaaaaaaa')
>>> list(lexer)
ValueError: No closing quotation 

但遇到带转义引号的字符串时,情况就不对了:

>>> lexer = shlex.shlex('"\\"')
>>> list(lexer)
['"\\"']

这个结果会导致把"\"传到远程bash执行时,bash会一直等待输入(因为这个命令的引号其实没闭合),但shlex却没有抛出我预期的ValueError。我本来以为这种未闭合引号的情况也应该触发错误才对。

所以想请教各位大佬:这是shlex的预期行为吗?如果是的话,背后的原因是什么?

备注:内容来源于stack exchange,提问作者vladimir H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 08:44:30