0

有没有办法在bash中分别捕获stdout和stderr,也许作为一个元组,用于ansible ad-hoc命令?就像是:stdout, stderr= ansible -i hosts -m shell -a "command"

4

1 回答 1

0

您可以使用选项-t以 JSON 格式记录输出。例如,如果我执行

ansible -m shell -a "echo test" -t tmp localhost

然后在文件中./tmp/localhost我会得到这个输出:

{
  "changed": true,
  "cmd": "echo test",
  "delta": "0:00:00.006099",
  "end": "2020-04-14 11:43:01.878959",
  "rc": 0,
  "start": "2020-04-14 11:43:01.872860",
  "stderr": "",
  "stderr_lines": [],
  "stdout": "test",
  "stdout_lines": [
    "test"
  ]
}

然后您可以解析标准输出和标准错误。

于 2020-04-14T09:45:25.330 回答