![bash 변수에서 작은따옴표로 변수 인쇄 |](https://linux55.com/image/108916/bash%20%EB%B3%80%EC%88%98%EC%97%90%EC%84%9C%20%EC%9E%91%EC%9D%80%EB%94%B0%EC%98%B4%ED%91%9C%EB%A1%9C%20%EB%B3%80%EC%88%98%20%EC%9D%B8%EC%87%84%20%7C.png)
Bash 스크립트에서는 날짜를 추가 변수로 전달해야 하는데 몇 가지 single quotes
문제가 있습니다.
...
$DT="03-04-17"
ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "$DT" }}'
수동 ansible-playbook은 다음과 같이 작동합니다.
$ ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "03-04-17" }}'
여기서는 ansible 플레이북의 날짜를 동적으로 전달하고 있습니다.
답변1
ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "$DT" }}'
ansible-playbook 명령(위에서 복제됨)은 어쨌든 작은따옴표를 표시하지 않습니다. 다음이 표시됩니다.
- 매개변수 #1
copyy2s3.yml
- 매개변수 #2
--extra-vars
- 매개변수 #3
cdate={{ "$DT" }}
$DT는 쉘 변수가 아닌 리터럴 문자열이 되며 이러한 공백도 매개변수의 일부가 됩니다. 이를 수행하는 방법에는 여러 가지가 있으며 Cuonglm은 이를 보여주었습니다.
'cdate={{ "'"$DT"'" }}'
'cdate={{ '\""$DT"\"' }}'
"cdate={{ \"$DT\" }}"
cdate=\{\{\ \""$DT"\"\ \}\}