Bei der Berechnung von Zeit Fehlermeldung

mr-sansibar

Grünschnabel
Hi !
wenn ich das unten stehende Shell-Skript ausführe zur Berechnung von Zeit bekomme ich diese Fehlermeldung:

24*1 - (10 - 09: value too great for base (error token is "09")
aber wenn ich es vor 11 Uhr ausführe. würde mich sehr freuen wenn ich eine lösung dafür hätte, bin nicht so der shell typ.


#!/usr/bin/bash
#set -x
tageszeit=$(TZ=$(date +%Z)+$((24*1 - ($(date +%H) - $(date -u +%H)) )) date +"%Y%m%d")
for d in /all_logs/logger/*; do
test -d "$d" || continue
echo $tageszeit
scp $d/*appl_logs*$tageszeit*.tar server2:/ornder1/ornder2/load/tmp_tar/.
done



danke
 
Wechsle %H durch %k aus.

Die Bash denk bei Zahlen mit einer führenden Null, dass es sich um eine Oktalzahl handelt.
Sie nimmt also nicht Basis 10, sondern die Basis 8 her.
Im Oktalsystem gibts aber die 8 und die 9, aber als mögliche Darstellung nicht. Deshalb erhältst du die Fehlermeldung: Wert zu gross für Basis.
Ein Zahlensystem kurz zu erklären ist nicht so ganz einfach.

Mal der Link zu Wikipedia: http://de.wikipedia.org/wiki/Oktalsystem

Jedenfalls liefert die %k die Zahlenwerte ohne führende Null, also solltest du dieses Verhalten umgehen können.
 

Neue Beiträge

Zurück