webstor
Goto Top

Shell Script (Tag der Woche und anderes Script aufrufen).

Hi Leute,

ich kämpfe hier mit einem selbstgebauten Shell Script nur hab ich gerade einen Denkfehler.
mainscript2 () {
  29          if      [ "$socket2_dayofweek_mon" -eq "1" ] && [ "$daynow" -eq "Mon" ] ||  
  30                  [ "$socket2_dayofweek_tue" -eq "1" ] && [ "$daynow" -eq "Tue" ] ||  
  31                  [ "$socket2_dayofweek_wed" -eq "1" ] && [ "$daynow" -eq "Wed" ] ||  
  32                  [ "$socket2_dayofweek_thu" -eq "1" ] && [ "$daynow" -eq "Thu" ] ||  
  33                  [ "$socket2_dayofweek_fri" -eq "1" ] && [ "$daynow" -eq "Fri" ] ||  
  34                  [ "$socket2_dayofweek_sat" -eq "1" ] && [ "$daynow" -eq "Sat" ] ||  
  35                  [ "$socket2_dayofweek_sun" -eq "1" ] && [ "$daynow" -eq "Sun" ] ;  
  36                  then
  37                          time_job_on2
  38                  else
  39                          timejob_off2
  40  fi
  41  }
  42  
Meine Abfrage soll checken und dies tut es auch ob $socket2_dayofweek_mon als Bsp. in der config mit =1 gekennzeichnet ist.
Wenn dies mit ja beantwortet wird und heute ist wirklich Montag dann soll das timejob_on2 gestartet werden, wenn nicht das timejob_off2

Verwende ich hier den OR Opertator falsch?

Vielen Dank und liebe Grüsse.
Kommentar vom Moderator Dani am Apr 28, 2014 um 08:11:58 Uhr
Formatierung hinzugefügt.

Content-Key: 236628

Url: https://administrator.de/contentid/236628

Printed on: April 19, 2024 at 15:04 o'clock

Member: colinardo
colinardo Apr 28, 2014 updated at 08:49:51 (UTC)
Goto Top
Hallo webstor,
du solltest bei String-Vergleichen nicht den Integer-Vergleichsoperator -eq benutzen sondern stattdessen den Stringoperator "=="
http://www.tldp.org/LDP/abs/html/comparison-ops.html
[ "$daynow" == "Mon" ]
Grüße Uwe
Member: webstor
webstor Apr 28, 2014 at 08:09:37 (UTC)
Goto Top
Ok. Danke.

Blöde Frage: Warum?
Member: colinardo
colinardo Apr 28, 2014 updated at 08:25:21 (UTC)
Goto Top
Zitat von @webstor:
Blöde Frage: Warum?
weil ein String was anderes ist als ein Integer ! Les bitte den obigen Link:

" Note that integer and string comparison use a different set of operators. "

Grüße Uwe