要在使用AWS CLI时快速切换身份,我有一个已下载凭据的文件夹(csv文件)。我听说有更复杂的方法来切换配置文件,但这种方式对我有用,而且我懒得改变它。我试图将其中一个更改为我可以提供的shell脚本:
# identity.sh
export AWS_ACCESS_KEY_ID='AKIABLAHBLAHKQKLQLGA'
export AWS_SECRET_ACCESS_KEY='secretblahblahblah'
如果我将这两行一次一个地复制/粘贴到我的会话中,一切正常。但是,如果我获取文件 - . ~/credentials/identity.sh
,则变量已损坏。看起来我的shell脚本认为第一个变量中有一个换行符。举例说明:
$ export | grep AWS
"eclare -x AWS_ACCESS_KEY_ID="AKIABLAHBLAHKQKLQLGA
"eclare -x AWS_SECRET_ACCESS_KEY="secretblahblahblah
如果我通过复制/粘贴一次导出一个变量,则输出如下:
$ export | grep AWS
declare -x AWS_ACCESS_KEY_ID="AKIABLAHBLAHKQKLQLGA"
declare -x AWS_SECRET_ACCESS_KEY="secretblahblahblah"
当我尝试获取文件时,没有人会发现CLI无法正常工作:
$ aws s3 ls
Invalid header value 'AWS AKIABLAHBLAHKQKLQLGA\r:blahblah='
现在这更像是一个奇怪的谜题,而不是真正的showstopper问题,但我已经尝试了各种解决方法:
有人有线索吗?提前谢谢。
答案 0 :(得分:3)
identity.sh
文件很可能是在Windows机器上创建的,并且具有不可打印的DOS字符。您可以使用cat -t
:
-t显示非打印字符
$ cat -t identity.sh
将显示控制字符。您可以使用dos2unix
命令将其转换为Mac。如果您没有安装dos2unix
:
$ brew install dos2unix
另一种选择是使用vi
或您喜欢的编辑器在Mac上创建该文件。
NAME
dos2unix - DOS/Mac to Unix and vice versa text file format converter
SYNOPSIS
dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...]
unix2dos [options] [FILE ...] [-n INFILE OUTFILE ...]
DESCRIPTION
The Dos2unix package includes utilities "dos2unix" and "unix2dos" to convert plain text files in DOS or Mac format to Unix format and vice versa.