Shell 壳牌公司|&&引用;ansible中无法识别语法
我正在ansible playbook中运行一个shell命令,我想在其中存储输出的最后一行,但出现以下错误: 致命:[webserver]:失败!=>{“changed”:true,“cmd”:“/hash.sh-p admin123 |&tail-1”,“delta”:“0:00:00.002563”,“end”:“2019-06-06 16:25:56.597951”,“failed”:true,“msg”:“非零返回代码”,“rc”:2,“开始”:“2019-06-06 16:25:56.595388”,“stderr”:“/bin/sh:1:语法错误:\”&“意外”,“stderr\u行”:“/bin/sh:1:语法错误:\”&\“意外”],“标准输出”:“,“标准输出行”:[]} main.yamlShell 壳牌公司|&&引用;ansible中无法识别语法,shell,ansible,Shell,Ansible,我正在ansible playbook中运行一个shell命令,我想在其中存储输出的最后一行,但出现以下错误: 致命:[webserver]:失败!=>{“changed”:true,“cmd”:“/hash.sh-p admin123 |&tail-1”,“delta”:“0:00:00.002563”,“end”:“2019-06-06 16:25:56.597951”,“failed”:true,“msg”:“非零返回代码”,“rc”:2,“开始”:“2019-06-06 16:25:56
- name: Get hash value of admin password
shell: "./hash.sh -p {{admin_password}} |& tail -1"
args:
chdir: /usr/share/tools
register: admin_password_hash
当我直接在远程机器上运行该命令(
/hash.sh-p admin123 |&tail-1
)时,它会给出正确的输出。假设您的意思是通过管道重定向stderr,这是符合POSIX的cmd1 |&cmd2
的替代方法(因此,与/bin/sh
一起工作的方式)iscmd1 2>&1 | cmd2
:
- name: "Get hash value of admin password"
shell: "./hash.sh -p {{admin_password | quote}} 2>&1 | tail -1"
args:
chdir: /usr/share/tools
register: admin_password_hash
| quote
很重要:如果没有它,您可能会出现重大安全问题,因为选择$(rm-rf/*)
作为密码的人可能会导致您的整个系统被擦除。(我想这是您使用的密码!)|
无效/bin/sh
语法。