Problem mit Bash: Umleitung von Ausgabe
Frank Matthieß
frankm at lug-owl.de
Thu Apr 3 18:08:02 CEST 2003
Donnerstag den 3.04.2003 um 17:48 CEST +0200, schrieb Jan-Benedict Glaw:
> On Thu, 2003-04-03 17:22:02 +0200, Florian Schwarz <floh at maflohsoft.de>
> wrote in message <3E8C519A.1020408 at maflohsoft.de>:
> > Jan-Benedict Glaw schrieb:
> > >>Florian Schwarz schrieb:
> > >Könntest Du das Script anhängen oder sonstwo hinpacken, sodaß man sich
> > >das angucken kann. Ich vermute, daß Du (vielleicht nicht so ganz
> > >offensichtlich;) irgendwo 'nen Syntax-Fehler d'rinhast...
> >
> > Ich habe das Wesen mal unter http://floh.linland.de/incmysqlback.sh
> > geparkt. Wäre nett wenn du (oder jemand anders) sich das mal anschauen
> > könnte. Auch sonstige Verbesserungsvorschläge sind erwünscht!!!
>
> Hmmm.
>
> Also, "diff A B > C" und "diff A B | cat C" sind zwei vollkommen
> unterschiedliche Dinger;)
>
> In Variante 1 wird nichts ausgegeben, der Diff landet in Datei C.
Was gewünscht ist.
>
> In Variante 2 wird erst der Diff nach stdout ausgegeben, danach nochmal
> zusätzlich C. C wird nicht überschrieben. C enthält hinterher nicht den
> diff (...oder bestenfalls noch 'ne alte Version).
Falsch. Siehe unten.
>
> An einigen Stellen leidet die Lesbarkeit stark unter der häufigen
> Verwendung von "&&", an einigen Stellen denke ich sogar, daß die
> "richtige" Ausführung fraglich ist...
>
> So, wie's jetzt ist, ist's auf jeden Fall falsch (also mit der
> "cat"-Konstruktion). Dein Fehler-Handling ist da auch falsch. Z.B.:
>
>
> diff $BACKUPDIR/$YESTERYEAR/$YESTERDAY.sql $BACKUPDIR/$YEAR/$TODAY.sql 2>$BACKUPDIR/diff.err | cat $BACKUPDIR/current.diff
> if [ $? != 0 ]; then
> error_handling "Creating Diff-File failed!" diff
> fi
Da sollte auch "...| cat > C" stehen...
Ansonsten wird C via cat ausgegeben.
Frank.
--
Frank Matthieß frankm at lug-owl.de
This is GNU/Linux Country. On a quiet night, you can hear Windows reboot.
More information about the Linux
mailing list