Section 7/10 of Introduction to Bash Scripting may contain a logic issue in this loop: for ip in "10.10.10.170 10.10.10.174 10.10.10.175" do ping -c 1 $ip done Because the IP list is wrapped in quotes, wouldn’t Bash treat it as a single loop item rather than three separate IPs? That would seem to expand into one command using the full string, instead of pinging each address individually. Should it instead be: for ip in 10.10.10.170 10.10.10.174 10.10.10.175 do ping -c 1 "$ip" done