Forum: PC-Programmierung fehler im skript


von tester (Gast)


Lesenswert?

Hallo bei folgendem Skript meldet er ei der IF abfrage immer wieder
1
line 31: arithmetic syntax error
1
# bootup system 60 sec. before timer
2
3
safe_margin=60
4
5
 
6
7
# modyfy if different location for tvheadend dvr/log path
8
9
cd ~hts/.hts/tvheadend/dvr/log
10
11
 
12
13
######################
14
15
 
16
17
start_date=0
18
19
stop_date=0
20
21
 
22
23
current_date=`date +%s`
24
25
 
26
27
for i in $( ls ); do
28
29
            tmp_start=`cat $i | grep '"start":' | cut -f 2 -d " " | cut -f 1 -d ","`
30
31
            tmp_stop=`cat $i | grep '"stop":' | cut -f 2 -d " " | cut -f 1 -d ","`
32
33
 
34
35
            # check for outdated timer
36
37
            if [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -gt $((current_date)) ]; then
38
39
 
40
41
                        # take lower value (tmp_start or start_date)
42
43
                        if [ $((start_date)) -eq 0 -o $((tmp_start)) -lt $((start_date)) ]; then
44
45
                        start_date=$tmp_start
46
47
                        stop_date=$tmp_stop
48
49
                        fi
50
51
            fi
52
53
done
54
55
 
56
57
wake_date=$((start_date-safe_margin))
58
59
echo $wake_date



was ist daran falsch??

von Daniel A. (daniel-a)


Lesenswert?

Ich weiss natürlich nicht, was in $tmp_stop oder $tmp_start steht, aber 
ich würde mal folgendes versuchen:
1
if [ "$tmp_stop" -gt "$current_date ] && [ "$tmp_start" -gt "$current_date" ]; then

: Bearbeitet durch User
von Daniel B. (dbuergin)


Lesenswert?

Wer ist "er", oder anders gefragt, welche Shell verwendest Du ?

Meine GNU bash version 4.1.2 reklamiert nicht, läuft durch.

Und die KSH auch:
/bin/ksh93 --version
  version         sh (AT&T Research) 93t+ 2010-06-21

: Bearbeitet durch User
von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

tester schrieb:
> was ist daran falsch??

daß du die bemängelte Zeile 31 nicht markiert hast.

von Daniel B. (dbuergin)


Lesenswert?

Sorry, Mist geschrieben, ich gehe natürlich davon aus, dass in Deinen
Variablen $tmp_stop und $tmp_start ein timestamp steht.
Ist wohl bei Dir nicht der Fall. Schau mal was bei den "cat... | grep 
..."
rauskommt. Da wird wohl der Fehler liegen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.