PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash if



jotpe
26.09.03, 11:40
guten tag.
ich möchte eine if-abrage machen.
in der datei inet steht entweder eine 0 oder eine 1 drin.

die if-abfrage soll so aussehen
if [ `cat /router/inet` -eq 0 ]
then
echo 'adsl-start wird ausgeführt' >> /router/log
/usr/sbin/adsl-start
else
echo 'verbindung bereits aktiv '`date` >> /router/log
fi

wenn ich das so ausführe klappt das sogar, aber über den cronjob nicht...
ich könnte mir vorstellen, dass cron damit ein problem hat, dass 0 ein integer ist und `cat /router/inet` ein string mit ner 1 oder 0 drin. ich habe natürlich auch schonmal ... -eq '0' ausprobiert und es will einfach nicht. dieses cron getühns macht mich noch fertig.

panzi
26.09.03, 12:57
probier mal stringvergleich:

if [ "`cat /router/inet`" '=' "0" ]
then
...

jotpe
26.09.03, 13:14
vielleicht ist es etwas schwierig da durchzublicken, aber ich kann es ja mal vorwegnehmen, es hat nicht geklappt...


hugo:/router # cat inet
0hugo:/router # cat inet_start
#!/bin/bash
echo 'inet_start aufgerufen' >> /router/log
#if [ `cat /router/inet` = '0' ]
if [ "`cat /router/inet`" '=' "0" ]
then
echo 'adsl-start wird ausgeführt' >> /router/log
/usr/sbin/adsl-start
else
echo 'verbindung bereits aktiv '`date` >> /router/log
fi
echo 'inet_start ende' >> /router/log

hugo:/router # cat log
inet_start aufgerufen
verbindung bereits aktiv
inet_start ende

hugo:/router #

fs111
26.09.03, 15:29
versuch mal:



if [ $(cat /router/inet) = 0 ]
then
echo "es ist null"
fi

HTH

Grüße fs111