當我們運行刀子搜索命令時,它列出了找到的項目數。我不想要項目的數量,而只需要結果。如何得到它。示例說,我想獲得一些返回碼或零值爲下面的命令。如何獲得'刀子搜索'命令的結果
$ knife search node "name:MyLinux AND role:java"
0 items found
當我們運行刀子搜索命令時,它列出了找到的項目數。我不想要項目的數量,而只需要結果。如何得到它。示例說,我想獲得一些返回碼或零值爲下面的命令。如何獲得'刀子搜索'命令的結果
$ knife search node "name:MyLinux AND role:java"
0 items found
您可以使用knife exec,這和使用Ruby的exit
方法。
實例(即使它試圖undertand你想有這麼幾個細節/背景下完成的任務):
knife exec -E "exit nodes.find('name:MyLinux AND role:java').count > 0"; echo $?
如果沒有被發現,1,如果任意數量的節點被發現將返回0。
如果你希望做一些節點(如添加配方到run_list):
knife exec -E "nodes.find('name:MyLinux AND role:java') { |n| n.run_list << 'cookbook::recipe'; n.save }"
「找到X項目」被寫入stderr
,所以它可能是更容易只是把它重定向:
$ knife search node "name:MyLinux AND role:java" 2> /dev/null
非常感謝。這工作正常:) – ReshmaA
@amhser你可能會考慮接受(蜱籤)答案,如果它解決了你的問題 – Tensibai