for循环的输出列表作为变量
Output list of for loop as variable
我正在尝试根据设置为变量的 OS 类型(只需要 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)
我正在尝试根据设置为变量的 OS 类型(只需要 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)