Portál AbcLinuxu, 14. května 2025 01:49
ping -c50 192.168.0.1se vypsala hodnota ktera vyjadruje chybovost /bez znaku %/ a kteto hodnote jeste pricist hodnotu 100.Jestlize by tedy byla chybovost 5% tak abz to vyhodilo cislo 105
#!/bin/sh PING=ping DEADLINE=10 ping_host() { local output=$($PING -q -n -c $1 -w $DEADLINE $2 2>&1) local temp=$(echo "$output"| awk ' BEGIN {pl=100} /packets transmitted/ { match($0, /([0-9]+)% packet loss/, matchstr) pl=matchstr[1] } /unknown host/ { # no output at all means network is probably down pl=100 } END {print pl + 100} ') RETURN_VALUE=$temp } ping_host 50 www.abclinuxu.cz echo $RETURN_VALUESamozrejme by bolo lepšie, ako už bolo odporučené, naučiť sa sed a awk (aj ja by som to asi niekedy mal urobiť) :)
lost_plus_sto=$((`ping -c50 127.0.0.1 | tail -n 2 | head -n 1 | sed "s/.*received, //" | sed "s/%.*//"` + 100))
echo $((`ping -c50 127.0.0.1 | tail -n 2 | head -n 1 | sed "s/.*received, //" | sed "s/%.*//"` + 100))... kdyz to potrebujes vypsane ..
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.