2015-06-23 94 views
0

當我們運行刀子搜索命令時,它列出了找到的項目數。我不想要項目的數量,而只需要結果。如何得到它。示例說,我想獲得一些返回碼或零值爲下面的命令。如何獲得'刀子搜索'命令的結果

$ knife search node "name:MyLinux AND role:java" 
0 items found 

回答

0

您可以使用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 }" 
+0

非常感謝。這工作正常:) – ReshmaA

+0

@amhser你可能會考慮接受(蜱籤)答案,如果它解決了你的問題 – Tensibai

1

「找到X項目」被寫入stderr,所以它可能是更容易只是把它重定向:

$ knife search node "name:MyLinux AND role:java" 2> /dev/null 
相關問題