我有一个 AWS SSM CLI 命令的字符串参数,由于以 /
开头,它看起来像一个文件路径。 /path/to/my/param
.
当我在 git bash 上运行命令时,无论我如何尝试转义它,它都会尝试查找文件:
aws ssm get-parameter --name "/path/to/my/param"
aws ssm get-parameter --name '/path/to/my/param'
aws ssm get-parameter --name '\/path\/to\/my\/param'
调用 GetParameter 操作时发生错误(ValidationException):无效的标签格式/Program Files/Git/path/to/my/param。标签名称不能以数字、“ssm”或“aws”(不区分大小写)作为前缀。您可以指定字母、数字和以下符号:句点 (.)、破折号 (-) 或下划线 (_)。
甚至尝试反引号,然后我得到一个 bash 错误
aws ssm get-parameter --name `/path/to/my/param`
错误:bash:/path/to/my/param: No such file or directory
如果我执行 echo/asd/asd
,它实际上会输出 /asd/asd
,所以这也可能是 aws cli 处理输入的方式。
任何想法如何逃脱它?
最佳答案
可以在 MSYS2 中关闭所选路径的路径转换(参见 Msys2 Porting,文件系统命名空间部分)。
您也可以通过以下方式暂时禁用它:
MSYS2_ARG_CONV_EXCL="/aws" aws ssm get-parameter --name '/aws/path/to/my/param'
关于Windows git bash 在调用 AWS CLI 时尝试将字符串解析为文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53706672/