LINUX.ORG.RU

Что не так со скриптом? (wmii)


0

0

юзаю wmii 3.5, написал красивый скрипт строки статуса:


#!/bin/sh

xwrite() {
        file="$1"; shift
        echo -n "$@" | wmiir write "$file"
}
wmiir remove /rbar/time1 2>/dev/null && sleep 2
wmiir remove /rbar/amarok 2>/dev/null && sleep 2
wmiir remove /rbar/la 2>/dev/null && sleep 2
wmiir remove /rbar/net 2>/dev/null && sleep 2
echo "#cccccc #252525 #222222" | wmiir create /rbar/time1
echo "#cccccc #030303 #222222" | wmiir create /rbar/amarok
echo "#cccccc #111111 #222222" | wmiir create /rbar/la
echo "#cccccc #181818 #222222" | wmiir create /rbar/net
while [ 1 ]
do
xwrite /rbar/time1 `date +%d\ %b\ %Y\ %H:%M:%S`
#getting track info from amaroK
amarokst=`ps ax | grep amarok | grep -v grep | grep -c .`
if [ $amarokst -lt 1 ]
then
xwrite /rbar/amarok "NP: Nothing."
else
playing=`dcop amarok default isPlaying`;
if [ $playing = true ]
then
timetotal=`dcop amarok default trackTotalTime`;
minutestotal=$((`dcop amarok default trackTotalTime`/60))
timesecmin=`expr $minutestotal "*" 60`
secondstotal=$(($timetotal - $timesecmin))
if [ $secondstotal -lt 10 ]
then
secondstotal="0"$secondstotal
fi
totaltime=$minutestotal":"$secondstotal
timenow=`dcop amarok default trackCurrentTime`;
minutesnow=$((`dcop amarok default trackCurrentTime`/60))
timesecminnow=`expr $minutesnow "*" 60`
secondsnow=$(($timenow - $timesecminnow))
if [ $secondsnow -lt 10 ]
then
secondsnow="0"$secondsnow
fi
nowtime=$minutesnow":"$secondsnow
xwrite /rbar/amarok "NP:" `dcop amarok player artist`" - "`dcop amarok player title`" ("$nowtime"/"$totaltime")"
else
xwrite /rbar/amarok "NP: Nothing."
fi
fi
xwrite /rbar/la "LA:" `uptime | sed 's/.*://; s/,//g'`
netppp0=`/sbin/ifconfig | grep ppp0 -c`
if [ $netppp0 = 1 ]
then
netppp0="on"
else
netppp0="off"
fi
xwrite /rbar/net "ppp0: "$netppp0
sleep 1
done

проблема в том что при использовании этого скрипта со временем иксы начинают использовать всё больше и больше памяти, что мне совсем не норавится.

обьясните, мне нужно через каждые несколько циклов выполнять wmiir remove для каждой части строки статуса? или просто я что-то криво написал в скрипте?

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.