Imprime uma variável na aspa simples no bash | Variáveis estranhas

0

No script bash, preciso passar a data como variável extra ansible, mas obtenho algo com single quotes problemas relacionados;

...
$DT="03-04-17"
ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "$DT" }}'

e manualmente ansiosos-playbook trabalhando como

$ ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "03-04-17" }}'

Aqui dinamicamente passo a data em um playbook ansible.

    
por Nullpointer 04.04.2017 / 08:46

1 resposta

2

ansible-playbook copy2s3.yml --extra-vars 'cdate={{ "$DT" }}'

O comando ansible-playbook (repetido acima) não verá as suaspas simples de qualquer maneira. O que veria é o seguinte:

  • arg # 1 copyy2s3.yml
  • arg # 2 --extra-vars
  • arg # 3 cdate={{ "$DT" }}

Note que o $ DT será uma string literal e não uma variável do shell como também aqueles espaços, que farão parte do argumento. Há muitas maneiras de fazer isso, como já foi mostrado para você pela Cuonglm.

  • 'cdate={{ "'"$DT"'" }}'
  • 'cdate={{ '\""$DT"\"' }}'
  • "cdate={{ \"$DT\" }}"
  • cdate=\{\{\ \""$DT"\"\ \}\}
por 04.04.2017 / 09:30