Hallo ATZENPOWERde,
bist Du sicher, daß Du deinen Code 1:1 hier übertragen hast? Dein Skript gibt bei mir nämlich genau das aus, was es soll:
/srv/www/backup/world-hack\_test\_2012.03.03\_1604.tar.gz
/srv/www/subdomains/test/httpdocs
world-hack\_test\_2012.03.03\_1604
tar.gz
-czf
world-hack\_test\_2012.03.03\_1604.tar.gz
warum gibt er mir nicht den richtigen datensatz aus?..
Gute Frage. Außer einem für mich etwas unorthodoxen Stil kann ich keine Fehler sehen. Und es läuft ja auch bei mir.
Ich hätte nur ein paar unverbindliche Empfehlungen:
rufe das Skript mal nicht über sh auf, sondern direkt über eine SheBang-Zeile am Anfang:
#!/bin/bash -ue
oder überzeuge dich wenigstens sicherheitshalber, was sh aufruft. sh ist normalerweise nur ein Link auf die jeweilige Standard-Shell. Bei mir wäre das z.B. nicht die bash , sondern die dash.
Gut, das macht bei deinen Zeilen wahrscheinlich keinen Unterschied, aber ich finde es gerade beim Testen besser, wenn man genau weiss, in welcher Umgebung man sich bewegt.
Dann bevorzuge ich es, für Variablen Anführungszeichen zu benutzen, also statt
DATEITYP=tar.gz
lieber
DATEITYP="tar.gz"
ist zwar hier auch nicht unbedingt notwendig, aber wenn Leerzeichen und Sonderzeichen ins Spiel kommen hilft es ganz ungemein, wenn man sowas schon gewohnheitsmäßig macht.
Dem entspricht dann auch das „Klammern“ der Varablennamen, also sowas:
echo "${DATEINAME}.${DATEITYP}"
Ok, ist sicher umständlich und vielleicht auch ne Macke von mir, aber bei der Fehlersuche hilfreich, ganz besonders wenn, wie bei Dir, der Teufel irgendwo unsichtbar im Detail steckt
Noch mehr solche Tipps:
http://www.davidpashley.com/articles/writing-robust-…
So direkt hilft dir das nun leider nicht weiter, aber zumindest in dem geposteten Code kann ich keinen Fehler entdecken, außer daß ich so nicht unbedingt schreiben würde.
Vielleicht kommt ja jemand anders auf den Trichter.
Viele Grüße
Marvin
PS. Hier hilft und
leider nicht, sondern nur die oben angeführten, in deinem Fall also
und