我有一个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'
An error occurred (ValidationException) when calling the GetParameter operation: Invalid label format /Program Files/Git/path/to/my/param. A label name can't be prefixed with numbers, "ssm", or "aws" (case-insensitive). You can specify letters, numbers, and the following symbols: period (.), dash (-), or underscore (_).
即使尝试过后退,我也会收到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,Filesystem namespaces部分)。
您也可以通过以下方式暂时禁用它:
MSYS2_ARG_CONV_EXCL="/aws" aws ssm get-parameter --name '/aws/path/to/my/param'