2016-03-20 19 views
-3

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

+0

Wenn Sie Hilfe benötigen, müssen Sie den gesamten relevanten Code bereitstellen. –

+1

Entweder "$ NEXT" enthält die Leerzeichen, oder es ist ein Tab. – bishop

+0

Mein Fehler ... Jetzt sollte es in Ordnung sein. – user3463055

Antwort

1

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.

0

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.