Ich habe Code mit zwei Variablen in echo
. Ich weiß nicht, warum es Leerzeichen vor $NEXT
druckt, obwohl ich nur einen Platz im Code habe.Echo druckt zu viele Leerzeichen
Antwort
Ihre find
Ausdruck ist nicht zu tun, was Sie denken, es ist:
NEXT=$(find "${DIR}" -type f -name "*.$ext" | sed "s/.*\/\.//g" | sed "s/.*\///g" |
sed -n '/.*\..*/p' | wc -l)
Wenn Sie Rohr-wc -l
Sie mit einem Nummer gelassen werden. Das Format der Nummer wird von den Standardkompilierungsoptionen Ihrer Distributionen für wc
abhängen. Während im Allgemeinen, wenn Informationen Pipe oder umgeleitet zu wc
ist, sollte der zurückgegebene Wert ohne führende Leerzeichen sein (aber es gibt keine Garantie, dass Ihre Installation von wc
wird so funktionieren). Alles, was Sie tun können, testen Sie und sehen Sie, welche Ergebnisse, z.
ls "$HOME" | wc -l
Wenn Leerraum vor dem Wert zurückgegeben wird - Sie haben Ihr Problem gefunden.
Wenn die letzte Zeile die Ausgabe ist, dann scheint es eine Ausgabe von etwas anderem als angezeigtem Code zu sein. Wenn Ihr Ausgang komisch aussieht, versuchen um jede Variable einfache Anführungszeichen setzen:
echo " Average file size .'$ext': '$AEXT'"
Auf diese Weise werden Sie wissen, wenn die Räume (oder Tabs) werden aus den Variablen kommen selbst oder aus dem Skript.
Wenn Sie Hilfe benötigen, müssen Sie den gesamten relevanten Code bereitstellen. –
Entweder "$ NEXT" enthält die Leerzeichen, oder es ist ein Tab. – bishop
Mein Fehler ... Jetzt sollte es in Ordnung sein. – user3463055