Evo ovako htio bih čitati iz /sys/class/net/wlan0/statistics/rx_bytes pomocu shell skripte. Taj fajl ima samo jedan red. Ja bi htio prociati taj jedan red i spremiti ga u neku varijablu u shell skripti. Kako da to napravim? Hvala unaprijed
Čitanje teksta iz datoteke u shell-u
- poruka: 9
- |
- čitano: 1.684
- |
- moderatori:
pirat, Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Evo ovako htio bih čitati iz /sys/class/net/wlan0/statistics/rx_bytes pomocu shell skripte. Taj fajl ima samo jedan red. Ja bi htio prociati taj jedan red i spremiti ga u neku varijablu u shell skripti. Kako da to napravim? Hvala unaprijed
#!/bin/bash
varijabla=$(cat /sys/class/net/wlan0/statistics/rx_bytes)
Evo moj prijedlog:
#!/bin/bash
varijabla=cat /sys/class/net/wlan0/statistics/rx_bytes ?
negdje bi trebalo jednu sekundu sad cu stavit neki wait u kod i sta bih jos morao napravit
bump?
Ne ide rate=$old-$new nego rate=(($old-$new))
ne ide print nego echo.
Nije wait nego je sleep itd...
Dakle točan code je (i radi):
#!/bin/sh
while true
do
old=$(cat /sys/class/net/wlan0/statistics/rx_bytes)
sleep 3
new=$(cat /sys/class/net/wlan0/statistics/rx_bytes)
rate=$(($new - $old))
echo $rate
done
A ako želiš ukupan broj (ne razliku), onda je jednostavnije:
#!/bin/sh
while true
do
rate=$(cat /sys/class/net/wlan0/statistics/rx_bytes)
sleep 2
echo $rate
done
Naravno ispisivat će ti konstantno brojeve, što baš i nije prikladno za bilo koju skriptu.
To možeš izbjeći sa if petljom:
#!/bin/sh
while true
do
old=$(cat /sys/class/net/wlan0/statistics/rx_bytes)
sleep 2
new=$(cat /sys/class/net/wlan0/statistics/rx_bytes)
if [ "$new" -ne "$old" ]
then
echo $new
fi
done