Seite 1 von 1
Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Samstag 13. Januar 2024, 21:29
von Andy-452
Hallo Leute (und ein frohes Neues)
Ich hatte mir ein kleines Script gebaut, welches Tage herunterzählt; zuletzt war als Zieldatum augewiesen "Dec 21". Damit funktionierte alles ohne Probleme wie gewünscht.
Nun wollte ich aus gegebenem Anlaß das Datum ändern nach "Mar 20"; und sonderbar, jetzt erscheint eine Fehlermeldung, da heißt es plötzlich:
Code: Alles auswählen
WSW.sh: 5: arithmetic expression: expecting EOF: "080 - 013"
Wähle ich statt dessen als Datum "Mar 17", wird das Script ausgeführt. Ab "Mar 18" gibt es wieder eine Fehlerausgabe:
Code: Alles auswählen
WSW.sh: 5: arithmetic expression: expecting EOF: "078 - 013"
Das schnalle ich nicht
Kann mir jemand verraten, was das Script gegen den 20. März haben kann... ?
So long,
Andy
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Samstag 13. Januar 2024, 22:05
von gosia
Hallo Andy,
Andy-452 hat geschrieben: ↑Samstag 13. Januar 2024, 21:29
Kann mir jemand verraten, was das Script gegen den 20. März haben kann
Chapeau! für alle, die das auch ohne Kenntnis des Skriptes sagen können
Aber ich denke, es geht schneller, wenn Du das Skript auch veröffentlichst. Aber ich gehe mal davon aus, dass durch die führende 0 der Ausdruck als Oktalzahl betrachtet wird und eine 8 in einer Oktalzahl (080 oder 078) zu gross, bzw. nicht zulässig ist.
"Constants with a leading 0 are interpreted as octal numbers."
https://www.gnu.org/savannah-checkouts/ ... Arithmetic
viele Grüsse gosia
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Samstag 13. Januar 2024, 22:19
von Andy-452
gosia hat geschrieben: ↑Samstag 13. Januar 2024, 22:05
...Chapeau! für alle, die das auch ohne Kenntnis des Skriptes sagen können
Mir geht die Winterzeit vollständig auf den Senkel
Das erste Script hat die Tage heruntergezählt bis zur Wintersonnenwende; nun wird's Zeit, umzustellen auf Frühlingsanfang. Und so sieht das aus... oder besser, würde es aussehen, wenn's denn funktionieren würde:
Code: Alles auswählen
#!/bin/sh
WSW=`date -d "Mar 20" +%j`
TODAY=`date +%j`
DAYS=$(($WSW - $TODAY))
case $DAYS in
0) echo "FRÜHLINGSANFANG!";;
[0-9]*) echo "... noch $DAYS Tage bis Frühlingsanfang :)";;
esac
So nu
So long,
Andy
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Samstag 13. Januar 2024, 22:55
von gosia
Hallo Andy,
probiere mal so
Code: Alles auswählen
#!/bin/sh
WSW=`date -d "Mar 20" +%_j`
TODAY=`date +%_j`
DAYS=$(($WSW - $TODAY))
case $DAYS in
0) echo "FRÜHLINGSANFANG!";;
[0-9]*) echo "... noch $DAYS Tage bis Frühlingsanfang :)";;
esac
nur kurz getestet, aber +%_j bewirkt, dass die jeweilige Tagnummer ohne führende Null ausgegeben und somit nicht als Oktalzahl interpretiert wird.
geht sicher eleganter, aber was solls...
viele Grüsse gosia
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Samstag 13. Januar 2024, 22:59
von maroco
Hallo Andy-452,
Zahlen mit führenden Nullen werden von der Bash-Shell als
Oktalzahlen interpretiert. Diese akzeptieren nur Ziffern von 0 bis 7; bei einer 8 oder 9 wird eine Fehlermeldung ausgeworfen.
Setze in Zeile 5 die fraglichen Variablen mit vorangestelltem 10# expliziert zur Basis 10, dann wird die Arithmetik so ausgeführt, wie du es beabsichtigst.
Nettes Skript, übrigens.
Edit: Sehe eben erst, dass gosia auch eine schöne Lösung vorschlägt!
Gruß
maroco
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Samstag 13. Januar 2024, 23:20
von Andy-452
maroco hat geschrieben: ↑Samstag 13. Januar 2024, 22:59
...Setze in Zeile 5 die fraglichen Variablen mit vorangestelltem 10# expliziert zur Basis 10, dann wird die Arithmetik so ausgeführt, wie du es beabsichtigst.
Oh yeah, bingo, DAS funktioniert
Na, so komme ich doch gleich wieder viel besser klar mit Schippen und Streuen und langen Unterhosen
Meinen herzlichen Dank an alle
So long,
Andy
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Sonntag 14. Januar 2024, 15:03
von country
Hey,
cooles Script hab ich direkt in meine Snippet Ordner aufgenommen.
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Sonntag 14. Januar 2024, 16:32
von Andy-452
country hat geschrieben: ↑Sonntag 14. Januar 2024, 15:03
Hey,
cooles Script hab ich direkt in meine Snippet Ordner aufgenommen.
...danke
Ich habe mir das so eingerichtet, daß das Script (umbenannt nach FA für Frühlingsanfang
) über ein zweites Script (FA_exec) aufgerufen und gestartet wird; dieses sieht dann so aus:
Code: Alles auswählen
#!/bin/sh
gnome-terminal -e "bash -c 'sh FA.sh; read -n1'"
Vorteil: ich klicke das Script an, das Terminal öffnet sich, zählt die Tage... und ich kann es mit Tastendruck wieder schließen. Easy
EDIT: Noch eleganter und einfacher geht das nun mit Tastenkombi (ALT+C, C für count-down
) Vielleicht läßt sich solches Script ja auch noch mal anderweitig verwenden.
So long,
Andy
Re: Merkwürdiges Problem mit selbstgebautem Script
Verfasst: Montag 15. Januar 2024, 15:07
von country
Ich lass es momentan ausführen wenn mein Terminal startet, dann steht in der ersten Zeile der Countdown, aber ja natürlich lässt sich damit noch was machen