我有一些代码可以从用户处读取密码并将其写入文件中,我输入了密码cPUtnZjn$s2O,但是在输出文件中输入了cPUtnZjn。
---
- name: read password
hosts: all
vars_prompt:
- name: admin_password
prompt: "enter password for admin"
private: no
tasks:
- name: modify database
shell: |
echo 'database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: '{{admin_password}}'' > /root/admin_password输出
database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: cPUtnZjn如何解决这个问题?
发布于 2019-09-23 13:19:55
引用字符串的方式是错误的,因为您要从单引号中输出密码。然后,shell将$s2O解释为一个环境变量。因为id不存在,所以它是空的。以下是您所期望的结果:
- name: modify database
shell: |
echo 'database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: {{ admin_password }}' > /root/admin_password如果您确实需要在结果中围绕密码使用单引号,则可以执行以下操作(警告:引用地狱.):
- name: modify database
shell: |
echo "database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: '"'{{ admin_password }}'"'" > /root/admin_passwordhttps://stackoverflow.com/questions/58063294
复制相似问题