当我们运行刀搜索命令时,它列出了找到的项目数。我不想要项目的数量,而只需要结果。怎么弄它。 举个例子,我想为下面的命令获得一些返回码或nil值。
$ knife search node "name:MyLinux AND role:java"
0 items found
答案 0 :(得分:2)
发现" X项目"写入stderr
,因此重定向它可能更容易:
$ knife search node "name:MyLinux AND role:java" 2> /dev/null
答案 1 :(得分:0)
您可以使用knife exec并使用红宝石的exit
方法。
示例(即使它试图通过如此少的细节/上下文来完成您想要完成的任务):
knife exec -E "exit nodes.find('name:MyLinux AND role:java').count > 0"; echo $?
如果没有找到,则返回0;如果找到任意数量的节点,则返回1。
如果您希望对节点执行某些操作(例如向run_list添加配方):
knife exec -E "nodes.find('name:MyLinux AND role:java') { |n| n.run_list << 'cookbook::recipe'; n.save }"