注意::如果有人认为此问题已被回答,请在下面粘贴您的答案,否则请勿干扰他人 试图帮助需要帮助的人。谢谢
我不确定为什么在缩进内容时尝试麻烦将内容提交文件
谁能指出如何关闭此Heredoc区块
UserData:
"Fn::Base64":
!Sub |
#!/bin/bash -xe
NONCE=$(cat /tmp/nonce)
cat <<-EOF > /tmp/docker-compose.yaml
version: '3.5'
services:
onboarding:
container_name: nginx
image: nginx:${BuildId}
restart: always
ports:
- 80:80
environment:
ENV: ${Env}
AWS_REGION: ${Region}
NONCE: $NONCE
EOF
source ~/.bashrc
但是问题是cat不能通过关闭“ EOF”正确关闭。
文件/tmp/docker-compose.yaml
version: '3.5'
services:
onboarding:
container_name: nginx
image: nginx:${BuildId}
restart: always
ports:
- 80:80
environment:
ENV: ${Env}
AWS_REGION: ${Region}
NONCE: $NONCE
EOF
source ~/.bashrc
但这是期望的结果
version: '3.5'
services:
onboarding:
container_name: nginx
image: nginx:${BuildId}
restart: always
ports:
- 80:80
environment:
ENV: ${Env}
AWS_REGION: ${Region}
NONCE: $NONCE
首先,为什么即使有缩进,此Heredoc也不那么简单?我知道当内容中根本没有空格时,它会很好地工作,但是我不确定为什么当内容中有空格时,为什么会这么麻烦
由于这个问题,任何更好的替代方案都将放弃给猫
任何帮助将不胜感激 谢谢
答案 0 :(得分:-2)
当我认为您打算写<<-EOF
时,您已经写过<<EOF
。
Bash不会关闭您的Heredoc,因为它希望-EOF
关闭它,因为您打开了Heredoc的方式。将结尾从EOF
更改为-EOF
,或者,这就是我的建议,将<<-EOF
更改为<<EOF
。