Hallo, ich habe das Problem die Größe einer Datei, deren Pfadname einem bash-script von einem anderen Programm beim Aufruf des bash-scripts als Parameter ("$1") übergeben wird, in diesem script weiterzuverarbeiten. Da mir bekannt ist, dass die Übergabeparameter in der Weiterverarbeitung immer etwas kritisch sind, habe ich "$1" zunächst in einer Variable BUF zwischengespeichert:
1 | BUF="$1" |
BUF enthält jetzt Pfad und Dateiname in der Form "/Pfad/zur/Datei/Dateiname mit Leerzeichen.txt" (incl. der Anführungszeichen). Mit der expliziten Notation
1 | SIZE=$(du "/Pfad/zur/Datei/Dateiname mit Leerzeichen.txt" | cut -f1 | tail -n 1) |
liefert $SIZE auch brav die Dateigröße (cum grano salis, ich kenne die "Ecken&Kanten" von du). Nur kriege ich um's Verrecken mit
1 | SIZE=$(du $BUF | cut -f1 | tail -n 1) |
(oder ähnlich, ich habe schon alle möglichen Varianten von "BUF" ausprobiert) keine Ausgabe hin. Manchmal hasse ich die Shell- Syntax wirklich....
Kann mir jemand helfen? (Ja,ich kenne die Alternativen zu "du" wie stat und awk, möchte aber gern bei du bleiben, wenn möglich. Stat und awk machen auf einigen UNIX- basierten Systemen Problem).
Bearbeitet von rklm:
Syntaxhighlighting