2017-08-22 29 views
0

我所說的劇本從一個shell腳本,例如如何從一個可靠的劇本中返回一個值到一個shell腳本?

#!/bin/bash 
UPGRADE=`ansible-playbook -i /etc/ansible/hosts checkUpgrade.yml` 
echo " UPGRADE VALUE $UPGRADE " 

我想從checkUpgrade.yml返回/設置一些變量,讓我的來電顯示腳本可以使用它的進一步使用。

注意:不要希望值寫入文件

+0

儘管你願意,寫一個值的文件是真正實現你想要的最好的方式。或者,從* ansible playbook中調用腳本*,在這種情況下,您可以在命令行上傳遞參數。 – larsks

+0

爲什麼你會使用Ansible來獲得一些單一的價值? – techraf

+0

將輸出傳遞給grep並存儲它。這更像是一個'殼'問題。 – Zlemini

回答

0

Registering Variables for later use in playbooks

Using registered variables in conditionals

Reading Registered variable Return Values


如果在命令或shell寄存器變量的值,返回代碼總是(?)保存。

更具體到您的明顯使用,讓劇本的末尾輸出一些關鍵的哨兵字符串,您可以在$ UPGRADE中掃描。

if grep -q SPECIAL_CONDITION_1 $UPGRADE 
then doStuff1 
elif grep -q SPECIAL_CONDITION_2 $UPGRADE 
then doStuff2 
... 

方法使效率更高,但這應該說明問題。

相關問題