环境变量覆盖命令
Environment variable overrides command
我设置了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 }'`"
然后我尝试将一些文件复制到 EC2 实例中:
$ scp -i key.pem -r src/* ec2-user@$EC2_IP_ADDRESS:/home/ec2-user/src/
但输出错误:: nodename nor servname provided, or not known
$ 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
之后的任何内容都转到字符串的开头,覆盖命令。
关于如何解决这个问题有什么想法吗?
似乎变量最后包含 $'\r'
。用
删除它
EC2_IP_ADDRESS=${EC2_IP_ADDRESS%$'\r'}
我设置了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 }'`"
然后我尝试将一些文件复制到 EC2 实例中:
$ scp -i key.pem -r src/* ec2-user@$EC2_IP_ADDRESS:/home/ec2-user/src/
但输出错误:: nodename nor servname provided, or not known
$ 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
之后的任何内容都转到字符串的开头,覆盖命令。
关于如何解决这个问题有什么想法吗?
似乎变量最后包含 $'\r'
。用
EC2_IP_ADDRESS=${EC2_IP_ADDRESS%$'\r'}