Portál AbcLinuxu, 30. prosince 2025 07:33
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_VALUE
Samozrejme 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.