PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash Zeit Variable "to great"



mbo
23-06-2003, 11:03
moin moin,

unten stehendes Script hat dummerweise ein Problem mit 08 und 09, mag angesichts des Hinweises mit octalZahlen logisch erscheinen, erwächst sich aber zu einem kleinen Problem.

- - 8< - - -
#!/bin/bash
#
# aktueller Monat abk. Name
a=`date +%b`
# aktueller Tag des Monats
b=`date +%d`
# aktuelle Stunde
c=`date +%H`
ca=$[ 10#$c -1 ]
# Suche nach Monat Tag Stunde:..:.. in Messages nach error
d=`grep -i "$a $b $ca:..:.." /var/log/messages | grep -i error`
e=`echo " "`

if [ $d == $e ] 2>/dev/null; then
exit 0;
else
echo $d | /bin/mail -s "Errors in Log!" administrator
fi;

- - - >8 - -

Die gegrepte Zeile hat immer das gleiche Muster am Anfang
AAA BB 00:00:00

[root@root root]# c=`date +%H`
[root@root root]# ca=$[ 10#$c -1 ]
[root@root root]# echo $c
11
[root@root root]# echo $ca
10
[root@root root]# c=08
[root@root root]# ca=$[ 10#$c -1 ]
[root@root root]# echo $c
08
[root@root root]# echo $ca
7

Wie bringe ich Grep bei, daß er die führende Null nur dann setzt, wenn die Zahl nicht zweistellig ist. Sollte ich mir wirklich denn antun müssen, die Variable vorher daraufhin zu prüfen?

thx & cu/2 iae