Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Output list of for loop as variable

I am trying to get the output of hostnames based on OS type (want only RedHat server hostnames) set as a variable.

but my code keeps spitting out the string RedHat along with each hostname.

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)

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

By default grep will ouput the results of the pattern match.

If your version of grep supports it … the -q flag will suppress the output:

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

Alternatively, redirect the output to /dev/null:

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

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading