Linuxシェルの出力を変数に挿入しようとしていますが、何らかの理由で変数が常に空です。ここで 可能:シェルスクリプトの出力は常に空です
はAnsibleコードです:- name: Check PHP version
shell: php -v 2> /dev/null | awk '{print $2; exit}'
register: php_version
- debug: var=php_version
そして、ここで出力されます:
php -v 2> /dev/null | awk '{print $2; exit}'
7.0.14
:私は、サーバー上で直接コマンドを実行すると
ok: [10.0.0.5] => {
"php_version": {
"changed": true,
"cmd": "php -v 2> /dev/null | awk '{print $2; exit}'",
"delta": "0:00:00.015180",
"end": "2017-01-08 18:41:00.323773",
"rc": 0,
"start": "2017-01-08 18:41:00.308593",
"stderr": "",
"stdout": "",
"stdout_lines": [],
"warnings": []
}
}
が、私は有効な結果を得ます
何が問題なのですか?考えられる理由としては
この問題は再現できません。私はあなたの演劇をコピーし、MacOSで2.0.1.0とubuntuで2.3.0の両方を実行しました。私は両方で正確にstdoutを取得します。 –
私も再現できません。サーバー上で直接コマンドを実行する場合、Anipalが使用するのと同じユーザーとシェル '/ bin/sh'を使用していますか? – Zlemini
番号指定されたサーバーとは別のユーザーで実行できます。 – Omri