Ip/ping is chatty, even with the -q flag set. My understanding of this flag is that it should stop all output of ping from happening (that goes to stdout, as opposed to stderr). In fact, ip/ping still outputs its startup garble (sending bla bla) and, if it loses packets, how many. My expectation is that it should behave as e.g. grep -s where no output happens to stdout, but the $status is set. This patch should fix this issue adequately (it's really just 2 lines). Reference: /n/sources/patch/applied/hushping Date: Wed Apr 4 22:01:26 CES 2007 --- /sys/src/cmd/ip/ping.c Wed Apr 4 21:58:11 2007 +++ /sys/src/cmd/ip/ping.c Wed Apr 4 21:58:06 2007 @@ -362,7 +362,7 @@ lostmsgs++; unlock(&listlock); - if(lostmsgs) + if(!quiet && lostmsgs) print("%d out of %d messages lost\n", lostmsgs, lostmsgs+rcvdmsgs); } @@ -568,8 +568,9 @@ exits("dialing"); } - print("sending %d %d byte messages %d ms apart to %s\n", - nmsg, msglen, interval, ds); + if (!quiet) + print("sending %d %d byte messages %d ms apart to %s\n", + nmsg, msglen, interval, ds); switch(rfork(RFPROC|RFMEM|RFFDG)){ case -1: