首页 > 解决方案 > GitBash:如何传递以斜杠 / 开头的参数而不将其视为目录?

问题描述

在 Windows10 上使用 Git Bash...

我正在使用 aws cli 从 ssm 获取参数。名称参数以“/”开头。这被 bash 处理为目录名并导致错误。(命令在 CentOS 中工作。它在 PowerShell 中工作。我想留在 Git Bash 中。)

aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2

回复:

{
    "Parameters": [],
    "InvalidParameters": [
        "C:/Program Files/Git/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
    ]
}

我试过引用和转义......

... "/aws/..."
... '/aws/...'
... \/aws/...
... \/aws\/...
... \\/aws/...
... \\/aws\\...

我试过放入一个变量,但结果是一样的。

我尝试关闭通配符。(我验证“*”不再扩展,但我仍然有同样的问题。)

set -f

我找不到使命令在 GitBash 中工作的方法。

您碰巧知道解决方案吗?

标签: bashaws-cligit-bashmsys

解决方案


尝试这个 :

MSYS_NO_PATHCONV=1 aws ssm ...

如果这不起作用或导致其他问题,请尝试

aws ssm ... //aws\\service...

这是通过加倍替换第一个正斜杠并将所有剩余的正斜杠替换为两个反斜杠。


推荐阅读