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

Windows下Git Bash(MINGW)传递以/开头的外部程序参数被篡改的原因问询

Windows下Git Bash(MINGW)传递以/开头的外部程序参数被篡改的原因问询

我最近在Git Bash(也就是MINGW环境)里碰到了个挺费解的问题,想跟大家请教下原因:

比如直接在bash里执行echo '/C=UK/',能正常输出/C=UK/,完全符合预期。但要是把这个参数传给外部程序,比如OpenSSL的命令:

openssl req -subj '/C=UK/'

结果直接报错,错误提示是:

req: the subject name is expected to be in the format /type0=value0/type1=value1/type2=... where characters may be escaped by . This name is not in that format: 'C:/Programs/Repository/Git/C=UK/'

你看,原本的/C=UK/居然被改成了C:/Programs/Repository/Git/C=UK/,完全变了样。更头疼的是,我尝试用变量来绕开这个问题,比如:

SUBJ='/C=UK/'
openssl req -subj "$SUBJ"

结果还是一模一样的错误,参数照样被篡改了。

我实在想不通,为啥Git Bash/MINGW环境里,给外部程序传递以斜杠开头的参数时会出现这种情况?但像echo这种bash内置命令就完全正常,哪怕用单引号包裹参数也没用,用变量传递也解决不了问题,这到底是什么原因导致的呀?


内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 09:28:09