作为变量输出for循环的列表



我试图根据操作系统类型(只想要RedHat服务器主机名)将主机名的输出设置为变量。

但是我的代码一直输出字符串RedHat以及每个主机名。

minions=$(salt-run manage.up | cut -a " " -f2)
hosts=$(for minion in ${minions[@]}; do salt ${minion} grains.items | grep "os_family:" | grep RedHat && echo ${minion}; done)

默认情况下,grep将输出模式匹配的结果。

如果你的grep版本支持它…-q标志将抑制输出:

... | grep -q RedHat && echo ${minion}; done)

或者,将输出重定向到/dev/null:

... | grep RedHat >/dev/null && echo ${minion}; done)

最新更新