环境变量覆盖命令

时间:2018-01-22 08:52:01

标签: bash amazon-web-services environment-variables terraform

我设置了EC2_IP_ADDRESS变量

$ export EC2_IP_ADDRESS="`docker run -it -v $PWD/infrastructure:/terraform -v $PWD/data:/data terraform sh -c "terraform init; terraform state show module.aws_ec2.aws_eip.aws_instance_eip" | grep public_ip | awk '{print $3}'`"

然后我尝试将一些文件复制到EC2实例中:

$ scp -i key.pem -r src/* ec2-user@$EC2_IP_ADDRESS:/home/ec2-user/src/

但是输出错误::提供了nodename或servname,或者未知

$ echo "scp -i key.pem -r src/* ec2-user@$EC2_IP_ADDRESS:/home/ec2-user/src/"

的输出
:/home/ec2-user/src/c/* ec2-user@X.X.X.X

似乎变量EC2_IP_ADDRESS之后的任何内容都会转到字符串的开头,覆盖命令。

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:3)

最后变量似乎包含$'\r'。用

删除它
EC2_IP_ADDRESS=${EC2_IP_ADDRESS%$'\r'}