bash scripting problem!

4 отговора 246 прегледа
#1

bash scripting problem!

zdraveite
imam 1 problem koito se opitwam da resha po sledniq na4in: OS-a e Linux. Zna4i ideata e da se naprawi bash script za check na daden process, i ako processa ne e startiran da se startira na opredelen interwal ot wreme(crontaba ste swyrshi tazi rabota:))
eto i scripta koito sam napisal, no nesto ne moga da se usetq kakwo trqbwa da promenq za da proraboti:
#!/bin/bash
PROCNAME=BitchX
PROCSTATUSFILE=proc.stat
ps -e|grep $PROCNAME|wc -l > /tmp/$PROCSTATUSFILE
if [ 'cat $PROCSTATUSFILE' = "0" ]; then
/usr/bin/$PROCNAME
fi
znam 4e problema e pri if operatora
ako nqkoi moje da mi help ste sam mnogo blagodaren
thanks in advance
ddb

Отговор
в отговор на ddb #2

Re: bash scripting problem!

Абе in-line стартирането на процес не ставаше ли с обратния апостроф (`), а не с (')?

Отговор
в отговор на ddb #3

Re: bash scripting problem!

Доста сложно си го измислил, но въпреки това ако направиш промяна с реда по-долу ще сработи:
if [ `cat /tmp/$PROCSTATUSFILE` = "0" ]; then

Отговор
в отговор на ddb #4

Re: bash scripting problem!

Purwo, kakto kaza ironcode trjabwa da sa sus obratni chertichki `. Sled tova ne bi li ne rabotilo pravilno ako zapiswash vremennia resultat wuw /tmp/$PROCSTATUSFILE - wsushnost bi rabotilo - ako ne prekusne njakude posredata - ne e lli po-dobre napravo taka:

#!/bin/bash
PROCNAME=BitchX
if [ `ps -e|grep $PROCNAME|wc -l` = "0" ]; then
/usr/bin/$PROCNAME
fi

To err is human
To stderr is inhuman
Отговор
в отговор на ddb #5

Re: bash scripting problem!

#!/bin/sh

if [ "n$(ps -е|grep BitchX|grep -v grep)" == "n" ]; then
/usr/bin/BitchX
fi



Отговор